如何在 MongoDB 中的子文档中添加额外属性

How to add an extra attribute in a sub document in MongoDB

如何在 mongodb 中的子文档中 update/add 子文档。 我有这样的示例数据:

{
    "baselineParty": {
      "AP": [
        {
          "party": {
            "partyId": {
              "value": "12345"
            },
            
          }
        },
        {
          "party": {
            "partyId": {
              "value": "12346"
            }
          }
        },
        {
          "party": {
            "partyId": {
              "value": "12347"
            }
          }
        }
      ]
    }
  }

我想在现有 json 中添加一个额外的字段“baselineParty.AP.party.verifiedStatusYn” 预期结果是这样的:

    {
        "baselineParty": {
          "AP": [
            {
              "party": {
                "partyId": {
                  "value": "12345"
                }
              },
              "verifiedStatusYn": {
                "by": "cdd",
                "updated": "22",
                "value": "yes"
              }
            },
            {
              "party": {
                "partyId": {
                  "value": "12346"
                }
              },
              "verifiedStatusYn": {
                "by": "cdd",
                "updated": "22",
                "value": "yes"
              }
            },
            {
              "party": {
                "partyId": {
                  "value": "12347"
                }
              },
              "verifiedStatusYn": {
                "by": "cdd",
                "updated": "22",
                "value": "yes"
              }
            }
          ]
        }
      }

我尝试使用 $set 但没有得到预期的结果。

你们有解决办法吗?谢谢!

您需要 $[] 来更新数组中的所有条目。

db.collection.update({},
{
  $set: {
    "baselineParty.AP.$[].party.verifiedStatusYn": {
      "by": "cdd",
      "updated": "22",
      "value": "yes"
    }
  }
})

这里是Mongo playground供您参考。