mongodb更新操作
一、mongodb的更新update操作
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
引數說明:
query : update的查詢條件,類似sql update查詢內where後面的。
update : update的物件和一些更新的操作符(如inc…)等,也可以理解為sql update查詢內set後面的
upsert : 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,丟擲異常的級別。
示例:db.col.update({‘title’:‘MongoDB 教程’},{$set:{‘title’:‘MongoDB’}},{multi:true})將所有title為MongoDB 教程的改為MongoDB,不存在的則不更新
1、只更新第一條記錄:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
找到符合要求的記錄將第一條記錄欄位test2改為ok,沒有這個欄位則新增上這個欄位,如果沒有符合的記錄則不做更改。
2、全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
找到所有符合要求的記錄將所有記錄欄位test2改為ok,沒有這個欄位則新增上這個欄位,如果沒有符合的記錄則不做更改。
3、只新增第一條:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
找到符合要求的記錄將第一條記錄欄位test5改為ok,沒有這個欄位則新增上這個欄位,如果沒有符合的記錄則新增一條記錄,記錄為$set之後的。
4、全部新增加進去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
找到所有符合要求的記錄將所有記錄欄位test5改為ok,沒有這個欄位則新增上這個欄位,如果沒有符合的記錄則新增一條記錄,記錄為$set之後的。
5、全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
找到所有符合要求的記錄將所有記錄欄位count加上1,沒有這個欄位則新增上這個欄位{“count”:1},如果沒有符合的記錄則不做更改。
6、只更新第一條記錄:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
找到所有符合要求的記錄將第一條記錄欄位count加上1,沒有這個欄位則新增上這個欄位{“count”:1},如果沒有符合的記錄則不做更改。
二、mongodb的更新save操作
save() 方法通過傳入的文件來替換已有文件。語法格式如下:
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
document : 文件資料。
writeConcern :可選,丟擲異常的級別。