一、$inc
修改指定的数值键,正数表示增加,负数表示减少;如果键不存在则添加
db.users.update({name:"rote"},{"$inc":{age:2}})
对用户rote的年龄增加2
二、$set
修改一个键的值,如果键不存在则添加
db.users.update({name:"rote"},{"$set":{"favorite book":"MongoDB"}})
三、$unset
删除键
db.users.update({name:"rote"},{"$unset":{"favorite book":1}})
---------------------------------------------------数组修改器--------------------------------------------------------
四、$push
数组修改器,向数组中添加元素,若数组不存在则添加该数组
db.users.update({name:"rote"},{"$push":"test1@gmail.com"})
五、$ne
数组修改器,当数组中不存在某元素时才添加
db.users.update({emils:{"$ne":"test3@gmail.com"}},{"$push":{emails:"test3@gmail.com"}})
六、$addToSet
数组修改器,向数组中添加不重复元素;$ne不支持多条件查询,$addToSet比$ne更实用
db.users.update({name:"rote"},{"$addToSet":{emails:"test1@gmail.com"}})
七、$each
循环,和$addToSet一起使用可向数组中添加多个不同元素
db.users.update({name:"rote"},{"$addToSet":{emails:{"$each":["test1@gmail.com","test2@gmail.com","test3@gmail.com"]}}})
八、$pop和$pull
从数组中删除元素;$pop从数组的一端删除元素
db.users.update({name:"rote"},{"$pop":{emails:1}})
1--删除末尾元素,-1--删除开始元素
$pull按照删除匹配的元素
db.users.update({name:"rote"},{"$pull":{emails:"test1@gmail.com"}})
删除emails数组中的所有test1@gmail.com