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

若是没有匹配的文档,则返回错误!

相关文章
相关标签/搜索