MongoDB權威指南學習筆記2---修改器集合點

使用修改器時,"_id"的值不能改變!文檔替換是能夠的! 數組

1  Inc 排序

{"$inc":{"field":1}} 隊列

2 $set rem

{"$set":{"field":"value"}} 文檔

3 $unset---刪除鍵 it

{"$unset":{"field":1}} date

 4 添加數組元素 查詢

{"$push":{"key":"value"}} sort

5 push的高級玩法 集合

{"$push":{"key":{"$each":[value1,value2,value3]}}}

6 push時保證最大長度 ,保留最後幾個

{"$push":{"key":        {"$each":[value1,value2,value3], "$slice": -10 }        }}

只包含最後加入的10個元素,$slice的值必須爲負整數,這樣就能夠作隊列!

7 push時保證最大長度,根據排序規則保留

{"$push":{"key":        {"$each":[value1,value2,value3], "$slice": -10 ,"$sort": {"field":-1} }        }}

根據規則排序,而後保留前10個!

注意:不能只將slice或者sort與push使用,且必須使用each.

================================================

8保證數組內不包含某個元素才插入

 先查詢{"key": {"$ne":"value"}  }

不包含的意思,針對數組

9 若是$ne行不通,就使用$addToSet ,避免重複插入

update({...},      {"addToSet":{"key":"value"}}  )

10使用$addToSet一次添加多個

update({...},      {"addToSet":{"key":  {"$each":"value1","value2"}}}  )

11 從數組尾部刪除元素

{ "$pop":{"key":1} }

12 從數組頭部刪除

{ "$pop":{"key": -1} }

13 使用pull刪除某個值,針對數組

update({}, {"$pull":{"key":"value"}})

會刪除全部匹配的item!

14 數組位置絕對定位

update( {...}, { "$inc": {"comments.0.votes": 1}})

15 使用定位操做符$

update( {...查詢條件}, { "$inc": {"comments.$.votes": 1}})

只更新第一個匹配的元素!

 16對於upsert控制增長/修改的行爲

 {"$setOnInsert":{"key":"value"}}

17 關於findAndModify

findAndModify---集合名

query---查詢條件

sort---排序條件

update---修改器,update/remove必須指定1個。

remove---true/false,表示是否刪除文檔,update/remove選1個。

new---布爾類型,表示返回更新前的文檔仍是更新後的文檔。默認是更新前的文檔。

fields---文檔中須要返回的字段。

upsert---true/false

若是沒有匹配的文檔,則返回錯誤!

相關文章
相關標籤/搜索