如何修改MongoDB文档中的"key"元素?

How to modify the "key" element in MongoDB document?

我的文档结构如下

[
  {
    "network_type": "ex",
    "rack": [
      {
        "xxxx": {
          "asn": 111111,
          "nodes": {
            "business": [
              "sk550abcc1eb01.abc.com",
              "sk550abcc1eb10.abc.com",
              "sk550abcc1eb19.abc.com",
              "sk550abcc1eb28.abc.com"
            ]
          },
          "region": "ex-01",
          "zone": "01a"
        }
      }
    ]
  }
]

我需要rename/update将键数组元素“xxxx”添加到“详细信息”。

我尝试了以下命令,但它似乎不起作用。

db.collection.update({},
{
  $rename: {
    "rack.xxxx": "details"
  }
})

LINK : https://mongoplayground.net/p/9dcDP-VKZ55

请帮帮我。

不能直接$rename数组中的字段名。

相反,

  1. 迭代 rank 数组中的文档,创建值为 xxxxdetails 字段,然后将此字段附加到每个文档.

  2. 删除带有 $rank.xxxx 的路径以从 rank 数组中的文档中删除 xxxx 字段。

db.collection.update({},
[
  {
    $set: {
      rack: {
        $map: {
          input: "$rack",
          in: {
            $mergeObjects: [
              {
                "details": "$$this.xxxx"
              },
              "$$this"
            ]
          }
        }
      }
    }
  },
  {
    $unset: "rack.xxxx"
  }
])

Sample Mongo Playground