mongodb - 使用 mongo 查询按 id 更新数组元素

标签 mongodb

对于 _id 1 的 id 为 2 的数组元素,是否有将 sc 从 15 更新为 17 的查询?我在 mongodb 中有这个结构:

  { _id: 1,
    lb: [
       {
          id: 2,
          sc: 15
       },
       {
          id: 3,
          sc: 16
       }
        ]
  }
  { _id: 2,
    lb: [
       {
          id: 5,
          sc: 34
       },
       {
          id: 6,
          sc: 12
       }
        ]
  }

我还有一个:有没有一种方法可以像您刚才所说的那样编写要更新的查询,如果没有具有更新 id 的数组元素,则插入一个新的。我不想进行两个查询 - 首先检查元素是否存在并更新它,如果不存在则附加它。将它附加到一个查询中会很好。谢谢。 – user3045201 1 小时前

最佳答案

您可以使用以下查询对其进行更新:

db.myCollection.update({"_id" : 1, "lb.id" : 2},{$set : {"lb.$.sc" : 17}})

AFAIK,不可能在单个查询中做你想做的事。您必须对它们中的每一个进行单独的查询。

关于mongodb - 使用 mongo 查询按 id 更新数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262405/

相关文章:

mongodb - 如何在 mongo 字段中存储项目符号列表或值列表

java - Spring boot注入(inject)mongodb数据源

javascript - MongoDB 在本地运行还是通过 Atlas 运行?

mongodb - Elasticsearch mongo-connector KeyError _id

Mongodb 从计数函数和聚合管道中给出不同的计数结果

node.js - 在集合/对象中查找 - SailsJS 和 Waterline ORM

javascript - 将默认值设置为 Node js中的mongoose数组

mongodb - 在 shell/shell 脚本中设置 MongoDB 写关注

node.js - MongoDB 和 Mongoose 中边界框的数据类型?

java - 使用 MongoDB 更新数组