1. 程式人生 > >mongodb更新操作

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 :可選,丟擲異常的級別。