【问题标题】:How do I add a field to all object within an array in MongoDB?如何将字段添加到 MongoDB 中数组中的所有对象?
【发布时间】:2022-07-25 20:24:26
【问题描述】:

我有一个文档,其中包含一个名为 info 的字段,而 info 在其中有一个名为 data 的字段。 “数据”是一个对象数组。我想使用 updateMany 向数据中的每个对象添加一个新的布尔字段 isActive: false

这就是现在的样子

{ 
    info: {
        data: [{
                "name": "Max"
            },
            {
                "name": "Brian"
            },
            ...
        ]
    }
}

这就是我想要的:

{ 
    info: {
        data: [{
                "name": "Max",
                "isActive": false
            },
            {
                "name": "Brian",
                "isActive": false
            },
            ...
        ]
    }
}

我该怎么做?

【问题讨论】:

  • 此查询用于查询或更新文档?
  • @永顺更新

标签: mongodb mongodb-query nosql


【解决方案1】:

使用all positional operator $[] 添加isActive 字段。

db.collection.update({},
{
  $set: {
    "info.data.$[].isActive": false
  }
},
{
   multi: true
})

如果您想更新多个文档,请考虑应用{ multi: true }

【讨论】:

  • 可以用multi: true代替updateMany吗?因为我已经在使用updateMany 做其他事情,所以我可以将查询放在那个脚本中?
猜你喜欢
  • 2020-11-25
  • 2021-11-06
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
  • 2016-11-10
  • 1970-01-01
  • 2022-07-27
相关资源
最近更新 更多