【问题标题】:how to update a number field using another number field in MongoDB如何使用 MongoDB 中的另一个数字字段更新数字字段
【发布时间】:2020-06-10 14:51:51
【问题描述】:

MongoDB 可以允许使用同一文档中的另一个数字字段更新一个数字字段吗? 假设我有一个如下文件:

{
   "_id" : "1",
   "a" : 2,
   "b" : 3
}

ab 字段是数字字段(十进制,整数...) 我的目标是使用字段 a 更新字段 b 如何将 b 设置为 b = 2*a。 这可能吗?

【问题讨论】:

  • 你的 MongoDB 版本是多少?
  • 我的MongoDB版本是3.6.15
  • 3.6你没有直接更新的选项,你需要先阅读然后更新!!对于 v4.2,您可以一键完成!无论如何3.6 太旧了最好尽快升级你的版本..
  • 谢谢,我会用更新的版本再试一次
  • @whoami 我尝试了您的解决方案,它在 4.2 版中有效,感谢您的帮助

标签: mongodb mongodb-query


【解决方案1】:

注意:

  1. 在 v3.6 上,您没有直接更新的选项,您需要先在代码中读取和处理,然后再更新。
  2. 对于 v>= 4.2,您可以在一次调用中完成,因为.update() 将接受聚合管道,并且可以在对 DB 的一次更新调用中完成。你可以试试这个:

查询:

db.getCollection('collectionName').update({}, [{ $set: { b: { $multiply: ["$a", 2] } } }])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多