『MongoDB』集合更新操作


參考

定義

db.collection.update(query, update, options)

改變一個在集合中已經存在的文檔或文檔數組。默認的,update()方法更新一個獨立的文檔。如果multi選項被設置為true(真),這個方法更新匹配條件的所有文檔。

方法格式:

db.collection.update(
   <query>,
   <update>,
   { upsert: <boolean>, multi: <boolean> }
)
參數 類型 描述
query 文檔 選擇器,與find()中的用法一樣。
update 文檔 改變
upsert 文檔、布爾 可選。默認為false。如果為true,則表示“如果文檔不存在,則創建集合。”
multi 文檔、布爾 可選。默認為false。如果為true,則表示“更改所有符合條件的項目。”

update參數說明

參考

Name Description
$inc 通過指定的數值自增長某個字段的值。
$rename 重命名一個字段
$setOnInsert 當文檔在upsert創建期間,設置一個字段的值。對於已經存在的項目的更新不起作用。
$set 在一個已經存在的文檔的字段值。
$unset 從一個文檔中移除一個字段。

示例

db.products.update( { sku: "abc123" },
                    { $inc: { quantity: 5 } } )

增長sky為abc123的文檔的quantity字段的值5次。(如:原為1,增長后為6)

數組操作

Name Description
$ 作為一個占位符來更新一次update操作中的第一個符合條件的元素。
$addToSet 僅當它們在集合中不存在的時候,添加元素到一個已經存在的數組。
$pop 移除一個數組中第一個或最后一個元素。
$pullAll 從一個數組中移除所有元素。
$pull 從一個數組中移除匹配的元素。
$pushAll 不建議使用. 添加所有元素。
$push 添加一個元素。

$push簡單說明

格式

db.collection.update( <query>,
                      { $push: { <field>: <value> } }
                    )

示例

db.students.update(
                    { name: "joe" },
                    { $push: { scores: 89 } }
                  )

更改器

Name Description
$each $push和$addToSet的更改操作,為一個數組更新多個附加的項目。
$slice $push的更改操作來限制被更新數組的尺寸。
$sort $push的更改操作,為一個已經存在的數組排序。


免責聲明!

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



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