MongoDB 更新数组条目

MongoDB update arrays entry

我有一个文档可以 Mongodb 像这样更新对象数组:

    {
    "myArray": [
            {
              "Key1": "string",
              "key2": {
                "entry": "aaa"
              }
            },
            {
              "Key1": "string",
              "key2": {
                "entry": "bbb"
              }
            }
          ]
    }

并且我想修改myArray的每个对象中的key2字段。预期结果应为:

    {
    "myArray": [
            {
              "Key1": "string",
              "key2Modified":"aaa"
            },
            {
              "Key1": "string",
              "key2Modified":"bbb"
            }
          ]
    }

有什么帮助吗?

$set

中使用$map
db.collection.update({},
[
  {
    $set: {
      "myArray": {
        $map: {
          input: "$myArray",
          as: "a",
          in: {
            Key1: "$$a.Key1",
            key2Modified: "$$a.key2.entry"
          }
        }
      }
    }
  }
])

mongoplayground