如何更新 MongoDB 中的嵌套数组对象字段值?

问题描述 投票:0回答:1

更新数组中的嵌套对象值,数组中有多个对象。

{ 
    "_id" : ObjectId("5a7e395e20a31e44e0e7e284"), 
    "name" : "a", 
    "address" : [
        {
            "street" : "123", 
            "town" : "bar"
        }, 
        {
            "street" : "Lower Street", 
            "town" : "bar"
        }, 
        {
            "street" : "123", 
            "town" : "foo"
        }
    ]
}

如果街道为 123,则需要更新城镇为 HNO。

arrays mongodb mongodb-query
1个回答
0
投票

使用 位置过滤运算符

$[<identifier]
更新数组中的匹配元素。

db.collection.updateMany({
  "address.street": "123"
},
{
  $set: {
    "address.$[a].town": "HNO"
  }
},
{
  arrayFilters: [
    {
      "a.street": "123"
    }
  ]
})

演示@Mongo Playground

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.