MongoDB資料庫基本語句
通過shell連接配接
1.連接配接資料庫 ./mongo
2.建立資料庫 (如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。)
> use rain
switched to db rain
> db
rain
>
3.查詢所有資料庫
> show dbs
admin 0.000GB
local 0.000GB
rain 0.000GB
>
4.删除資料庫
//切換資料庫
> use rain
switched to db rain
//執行删除指令
> db.dropDatabase()
{ "dropped" : "rain", "ok" : 1 }
//驗證是否删除成功
> show dbs
admin 0.000GB
local 0.000GB
>
5.删除集合
> use rain
switched to db rain
> show tables
col
dongaotest
rain
> db.col.drop()
true
>
6.插入資料
//給集合test插入資料,若該集合不在該資料庫中, MongoDB 會自動建立該集合
> db.test.insert({title:'測試',descript:'測試插入資料',author:'rain'})
WriteResult({ "nInserted" : 1 })
> show tables
dongaotest
rain
test
//test 為新增的
//檢視已插入的文檔
> db.test.find().pretty()
{
"_id" : ObjectId("59b83e5437ced1ba21580d15"),
"title" : "測試",
"descript" : "測試插入資料",
"author" : "rain"
}
>
//也可以将資料定義為變量插入
> document=({"title":'測試變量插入',"descript":'還是測試',"tags":['test','test insert','mongodb'],"author":'rain'})
{
"title" : "測試變量插入",
"descript" : "還是測試",
"tags" : [
"test",
"test insert",
"mongodb"
],
"author" : "rain"
}
> db.test.insert(document)
WriteResult({ "nInserted" : 1 })
>
7.更新文檔
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
參數說明:
- query : update的查詢條件,類似sql update查詢内where後面的。
- update : update的對象和一些更新的操作符(如<script type="math/tex" id="MathJax-Element-7">,</script>inc…)等,也可以了解為sql update查詢内set後面的
- upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是 false,不插入。
- multi : 可選,mongodb 預設是false,隻更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
- writeConcern :可選,抛出異常的級别。
> db.test.update({'title':'測試'},{$set:{'title':'MongoDB 測試'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
-
隻更新第一條記錄:
db.col.update( { “count” : { $gt : 1 } } , { $set : { “test2” : “OK”} } );
-
全部更新:
db.col.update( { “count” : { $gt : 3 } } , { $set : { “test2” : “OK”} },false,true );
-
隻添加第一條:
db.col.update( { “count” : { $gt : 4 } } , { $set : { “test5” : “OK”} },true,false );
-
全部添加加進去:
db.col.update( { “count” : { $gt : 5 } } , { $set : { “test5” : “OK”} },true,true );
- db.col.update( { “count” : { $gt : 15 } } , { $inc : { “count” : 1} },false,true );
- db.col.update( { “count” : {$gt : 10 } } , { $inc : { “count” : 1} },false,false );
db.test.save(
<document>,
{
writeConcern: <document>
}
)
- document : 文檔資料。
8.删除文檔
db.test.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
- query :(可選)删除的文檔的條件。
- justOne : (可選)如果設為 true 或 1,則隻删除一個文檔。
- writeConcern :(可選)抛出異常的級别。
> db.test.remove({"title":'MongoDB 測試'})
WriteResult({ "nRemoved" : 1 }) //删除一條資料
//删除所有
>db.test.remove({})
9.查詢資料
db.test.find(query, projection)• 1
- query :可選,使用查詢操作符指定查詢條件
- projection :可選,使用投影操作符指定傳回的鍵。查詢時傳回文檔中所有鍵值, 隻需省略該參數即可(預設省略)。
MongoDB 與 RDBMS Where 語句比較
操作 | 格式 | 範例 | RDBMS中的類似語句 |
等于 | {< key>:< value>} | db.test.find({“by”:”菜鳥教程”}).pretty() | where by = ‘菜鳥教程’ |
小于 | {< key>:{$lt:< value>}} | db.test.find({“likes”:{$lt:50}}).pretty() | where likes < 50 |
小于或等于 | {< key>:{$lte:< value>}} | db.test.find({“likes”:{$lte:50}}).pretty() | where likes <= 50 |
大于 | {< key>:{$gt:< value>}} | db.test.find({“likes”:{$gt:50}}).pretty() | where likes > 50 |
大于或等于 | {< key>:{$gte:< value>}} | db.test.find({“likes”:{$gte:50}}).pretty() | where likes >= 50 |
不等于 | {< key>:{$ne:< value>}} | db.test.find({“likes”:{$ne:50}}).pretty() | where likes != 50 |
MongoDB AND 條件
>db.test.find({key1:value1, key2:value2}).pretty()
MongoDB OR 條件
>db.test.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
參考網址
1.
http://www.runoob.com/mongodb/mongodb-operators.html