mongodb修改器

1.$set & $unset

说明:$set用来制定一个字段的值。如果这个字段不存在,则创建它。$unset可以把存在的键完全删除。

用法($set):1.无age字段(增加键值)

                      db.users.update({"name":"juan"},{$set:{"age":23}})

                    2.修改age字段(修改键值,可以修改其值的类型)

                      db.users.update({"name":"juan"},{$set:{"age":"23"}})

 用法($unset):1. 删除键值

                          db.users.update({"name":"juan"},{$unset:{age:1}})

2.$inc

说明:$inc用来增加已有键的值,或者该键不存在那就创建一个。

注意:$inc的值必须为数字。

用法:db.users.update({"name":"juan"},{$inc:{"age":23}})

3.$push

$each:

说明:使用$each子操作符,可以通过一次$push操作添加多个值。

用法:db.users.update({"name":"juan"},{$push:{"book":{"$each":["node","express"]}}})

$slice:

说明:$slice和$push组合在一起使用,这样就可以保证数组不会超出设定好的最大长度。

注意:$slice的值必须是负整数。如果$slice的值为-10,数组的元素数量大于10,那么只有最后10个元素会保留。

用法:

db.users.update({"name":"juan"},{$push:{"book":{"$each":["express","mongo"],$slice:-10}}})

$sort:

说明:排序。

用法:db.users.update({"name":"juan"},{$push:{"like":{$each:[{"name":"node"},{"name":"mongo"}],$slice:-3,$sort:{"name":1}}}})

4.$

说明:位置或者定位操作符。

用法:1.知道修改的数组下标:

          db.users.update({"name":"juan"},{"$set":{"like.0.reader":"ljj"}})

        2.不知道修改的数组下标:

          db.users.update({"like.reader":"juan"},{"$set":{"like.$.reader":"ljj"}})

5.$pop && $pull

说明:$pop从数组任何一端删除元素。$pull会将所有匹配的文档删除,而不是一个。

$pop用法:

1.从数组末尾删除一个:db.users.update({"name":"juan"},{"$pop":{"book":1}})

 2.从数组头部删除一个:db.users.update({"name":"juan"},{"$pop":{"book":-1}})

$pull用法:

           db.users.update({"name":"juan"},{"$pull":{"book":"node"}})

6.$ne & $addToSet

说明:保证数组内的元素不会重复。

$ne用法:db.users.update({"book":{"$ne":"cn"}},{$push:{"book":"cn"}})

$addToSet用法:db.users.update({"name":"juan"},{$addToSet:{"book":"express"}})

$each

说明:$sddToSet和$each组合起来,可以添加多个不同的值。

用法:db.users.update({"name":"juan"},{$addToSet:{"book":{$each:["express","node"]}}})

原文地址:https://www.cnblogs.com/juanjuanBlog/p/5165702.html