mongodb PyMongo -更新嵌套数组中对象的字段

pu3pd22g  于 2023-01-30  发布在  Go
关注(0)|答案(1)|浏览(164)

尝试更新MongoDB中文档的嵌套对象。

{
    "items" : [
      {
        "id": 1,
        "name": "a",
        "child": [
          { "id": 11, "name": "aa" },
          { "id": 12, "name": "bb" },
         ]
      },
    ]
}

需要将名称为“aa”的子id更新为13。
O/P,我正在努力获得

{
    "items" : [
      {
        "id": 1,
        "name": "a",
        "child": [
          { "id": 13, "name": "aa" },
          { "id": 12, "name": "bb" },
        ]
      },
    ]
}
anauzrmj

anauzrmj1#

使用$[<identifier>]过滤位置运算符和arrayFilters

db.collection.update({
  "items.child.name": "aa"
},
{
  $set: {
    "items.$[].child.$[c].id": 13
  }
},
{
  arrayFilters: [
    {
      "c.name": "aa"
    }
  ]
})

Sample Mongo Playground

相关问题