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

eg:有一條數據為 name = lisi,age = 12,現在,想修改這條數據的 age = 20

代碼如下:

db.admin.update({name:'lisi'},{$set:{age:20}}) // 第一個參數表示查找到該條數據,第二個參數表示修改對應字段值

 

如果,不寫 $set ,則表示,該條數據將被修改為第二個參數中設置的值:

修改后:

可以看到,我們已經無法通過 name = 'lisi',查找到該條數據,

這條數據被修改為

此時,修改的只是當前查詢條件下,查詢到的第一條數據。

 如果,我們的查詢條件查詢到多條數據,我們想將所有查詢到的數據都進行同樣的修改,

比如,我想修改所有 name = 'zhangsan' 的 age = 21,

代碼如下:

db.user.update({'name':'zhangsan'},{$set:{'age': 21}},{multi:true})

 執行完畢,我們來查看結果:

此時,查詢條件 name = 'zhangsan' 的所有數據的 age 都被修改為 20


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM