首页 > 数据库 > NoSQL > Mongodb 6.0更新文档
1.更新文档内容(满足条件有多条数据时只更新第一条数据)
db.tong.updateOne({name:'qqq'},{$set:{age:'30'}}) #更新文档查询条件中name字段为qqq,将age字段的值修改为30。只更新第一条数据。
db.tong.updateOne({name:'qqq'},{$set:{age:'300',regin:'Beijin'}}) #更新文档查询条件中name字段为qqq,将age字段的值修改为300,regin字段的值修改为Beijin。
db.tong.updateOne({name:'qqq',age:'300'},{$set:{currency:'CNY'}}) #更新文档查询条件中name字段为qqq,age字段为300,将currency的值修改为CNY。
2.更新字段
$set 更新或新增字段
$unset 删除字段
$rename 重命名字段
$inc 加减字段值
$mul 相乘字段值
$min 比较减小字段值
$max 比较增大字段值
db.tong.updateOne({name:'lisi',age:'200'},{$set:{number:44,info:{one:'1111111',two:'2222222'}}}); #查找文档name为lisi和age为200的数据,将number修改为44,into修改为数组数据。(数据存在的会修改,不存在的会增加)
db.tong.updateOne({name:'lisi',age:'200'},{$set:{"info.one":'3333333'}}); # 查找文档name为lisi和age为200的数据,修改info数组中one的值为 3333333。
db.tong.updateOne({name:'lisi',age:'200'},{$set:{"info.three":'3333333'}}); #在数据组新添加字段,并赋值。
3.删除字段
db.tong.updateOne({name:'lisi',age:'200'},{$unset:{name123:''}}) # #查找文档name为lisi和age为200的数据,删除name123字段。
db.tong.updateOne({name:'lisi',age:'200'},{$unset:{"info.one":''}}) #删除info数组中的字段
4.重命名字段
db.tong.updateOne({name:'lisi',age:'200'},{$rename:{"regin":'region'}}) #将字段 regin重命名为 region。
5.更新字段值(只能用在整型数字)
$inc 加减值
$mul 乘除值
$min 将值比较之后更新成最小的值
$max 将值比较之后更新成最大的值
db.tong.updateOne({name:'qqq'},{$inc:{number:-0.5}}); #将number字段的值减去0.5(如果字段不存在,会新建字段并赋值)
db.tong.updateOne({name:'qqq'},{$inc:{number:+1}}); # 将number字段的值加1
db.tong.updateOne({name:'qqq'},{$mul:{number:2}}); # 将number字段的值乘以2(如果字段不存在,会新建字段并赋值0)
db.tong.updateOne({name:'qqq'},{$mul:{number:0.5}}); # 将number字段的值除以2
db.tong.updateOne({name:'qqq'},{$min:{number:100}}); #如果number存在的值小于100,那保留原先的值(如果更新字段的类型和值类型不一至,会按BSON数据类型排序规则进行比较)
db.tong.updateOne({name:'qqq'},{$max:{number:100}}); # 如果number存在的值小于100,那更新至当前值 (如果更新字段的类型和值类型不一至,会按BSON数据类型排序规则进行比较
6.更新数组
$addToSet #向数组中增添元素
$pop #从数组中移除元素
$pull #从数组中有选择性地移除元素
$pullAll #从数组中有选择性地移除元素
$push #向数组中增添元素
db.orders.updateOne({one:"123"},{$addToSet:{three:{aaa:"111",bbb:"222",ccc:"333"}}}) #在three数组中增添元素
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25854343/viewspace-2984094/ ,如需转载,请注明出处,否则将追究法律责任。