簡介:MongoDB[1] 是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。java
mongoDB 程序員
MongoDB[2] 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。他支持的數據結構很是鬆散,是相似json的bson格式,所以能夠存儲比較複雜的數據類型。Mongo最大的特色是他支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。正則表達式
分佈式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不必定直接鏈接在本地節點上,而是經過計算機網絡與節點相連。分佈式文件系統的設計基於客戶機/服務器模 式。一個典型的網絡可能包括多個供多用戶訪問的服務器。另外,對等特性容許一些系統扮演客戶機和服務器的雙重角色。sql
HBase是一個分佈式的、面向列的開源數據庫,該技術來源於 Fay Chang 所撰寫的Google論文「Bigtable:一個結構化數據的分佈式存儲系統。mongodb
Yonghong Data Mart是基於自有技術研發的一款數據存儲、數據處理的軟件。Yonghong Data Mart的分佈式文件存儲系統 (ZDFS)是在Hadoop HDFS基礎上進行的改造和擴展,將服務器集羣內全部節點上存儲的文件統一管理和存儲。數據庫
以上是對mongoDB的簡單介紹,經過介紹要使用MongoDB除了瞭解他的基本數據存儲,還要了解分佈式系統如何部署,以及如何解決負載均衡問題。json
如下內容是我閱讀了菜鳥教程進行的總結,主在熟悉基本命令,瞭解MongoDB功能特性等.服務器
一. 基本使用以命令方式網絡
use DATABASE_NAME數據結構
show dbsshow dbs
db.dropDatabase()
db.user.insert({_id:1,name:’mybo’})
插入語句使用相似json的bson
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
參數說明:
Exmple: db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一個 Nosql 數據庫",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
db.col.remove({'title':'MongoDB 教程'})
刪除第一條:db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
db.col.find()//查詢全部
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鳥教程"},{"title": "MongoDB 教程"}]}).pretty()
$type操做符是基於BSON類型來檢索集合中匹配的數據類型,並返回結果。
db.col.find({},{"title":1,_id:0}).limit(2)
{ "title" : "PHP 教程" }
{ "title" : "Java 教程" }
db.col.find({},{"title":1,_id:0}).limit(1).skip(1)
{ "title" : "Java 教程" }
db.COLLECTION_NAME.find().sort({KEY:1})//1 升序 2 降序
b.col.ensureIndex({"title":1})。
18. 聚合
MongoDB中聚合(aggregate)主要用於處理數據(諸如統計平均值,求和等),並返回計算後的數據結果。有點相似sql語句中的 count(*)。
db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
"result" : [
{
"_id" : "w3cschool.cc",
"num_tutorial" : 2
},
{
"_id" : "Neo4j",
"num_tutorial" : 1
}
],
"ok" : 1
}
db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})
以上是對mongoDB的命令行操做,可是對於程序員來講一些簡單命令操做能夠方便咱們使用,可是對於做爲一個從事java開發人員來講我但願是熟練l瞭解在java如何調用。