MongDB中可以使用save()和update()更新文档,save()必须指定_id及其它所有字段和值,update()更为灵活。
1.update()语法
db.collection_name.update(
查询条件,
整个文档或修改器,
upsert: 不存在匹配的文档时是否写入新文档,默认false(可选)
multi: 是否更新匹配的全部文档,默认false,此参数为true时第二个参数必须使用修改器(可选)
)
2.update()修改器
其中第二个参数可以是完整文档,也可以是修改器。MongoDB中提供了多种修改器。
2.1 - $set:修改指定的字段和值
db.user.update({"name":"tom"},{$set:{"age":11,"sex":1}})
2.2 - $unset:去除指定的字段
db.user.update({"name":"tom"},{$unset:{"sex":1}})
2.3 - $inc:增加指定的数值(可以是负数)
db.user.update({"name":"tom"},{$inc:{age:-1}})
2.4 - $push:追加元素到数组中,如果字段部存在,会新增一个数组类型的字段
db.user.update({"name":"tom"},{$push:{role:4}})
2.5 - $pushAll:以数组作为参数追加多个元素
db.user.update({"name":"tom"},{$pushAll:{"role":[4,5,6]}})
2.6 - pull:删除数组中满足条件的元素
db.user.update({"name":"tom"},{$pull:{"role":6}})
2.7 - $addToSet:增加一个值到数组中,当该值已存在是,不会增加
db.user.update({"name":"tom"},{$addToSet:{"role":6}})
2.8 - $pop:删除数组中的最后一个(1)或第一个(-1)元素
db.user.update({"name":"tom"},{$pop:{"role":1}})
db.user.update({"name":"tom"},{$pop:{"role":-1}})
2.9 - $rename:修改字段名称
db.user.update({"name":"tom"},{$rename:{"role":"r"}})
2.10 - $bit:将字段值与给定的数值进行and(与)、or(或)、xor(异或)等运算
基本语法如下
{ $bit: { <field>: { <and|or|xor>: <int> } } }
更多内容可以查阅官方文档 https://docs.mongodb.com/manual/reference/operator/update/bit/













网友评论