mongo(七)Mongo Update

mongo支持的更新方法:

db.collection.updateOne(, , ):更新一个文档,如:

db.inventory.updateOne(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
     $currentDate: { lastModified: true }
   }
)

表示将item域为paper的文档的size.uom域和status域的值分别更新为cm和P,并且判断lastModified域是否存在,如果存在
直接更新为当前时间,如果不存在,则先创建该域然后更新为当前时间。
注:只会更新第一个匹配的。

db.collection.updateMany(, , ):更新多个文档,如:

db.inventory.updateMany(
   { "qty": { $lt: 50 } },
   {
     $set: { "size.uom": "in", status: "P" },
     $currentDate: { lastModified: true }
   }
)

表示将qty域小于50的所有文档的的size.uom域和status域的值分别更新为cm和P,并且判断lastModified域是否存在,如果
存在直接更新为当前时间,如果不存在,则先创建该域然后更新为当前时间。

db.collection.replaceOne(, , ):
(1)如果要替换除主键_id外所有内容,可传给第二个参数一个完整的新的文档。

(2)给此方法传递的第二个参数不能含有操作符,如$or等

注:新的文档可以同要替换的文档拥有不同的域。替换时,新的文档可以遗漏_id主键,但是如果新的文档中含有主键,那么
就一定要和老的文档主键一样,因为_id是不可改变的。

db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)

坑:如果执行修改操作时,传入了主键,那么如果传入的主键与第一个参数匹配的文档主键不一致,则修改操作不会执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值