【问题标题】:Rename a field from an array for all documents of collection - MongoDB为所有集合文档重命名数组中的字段 - MongoDB
【发布时间】:2020-01-11 02:02:11
【问题描述】:

我有一个类似下面的文档

[
  {
    "_id" : NUUID("51611712-b966-4562-8937-06015a6691ec"),
    "Name":"Alex",
    "Descriptions" : [ 
        {
            "Name" : "Descr1",
            "Items" : [ 
                {
                    "ItemsType" : {
                        "_id" : 1,
                        "Name" : ""
                    },
                    "Field1" : 1,
                    "Field2" : null
                }, 
                {
                    "ItemsType" : {
                        "_id" : 2,
                        "Name" : ""
                    },
                    "Field1" : 1,
                    "Field2" : null
                }, 
                {
                    "ItemsType" : {
                        "_id" : 3,
                        "Name" : ""
                    },
                    "Field1" : 1,
                    "Field2" : null
                }
            ]
        }
    ],
    "DateCreated" : ISODate("2019-07-29T11:33:19.090Z"),
    "DateModified" : ISODate("2019-12-23T08:08:40.339Z"),
    "IsDeleted" : false,
    "LegalEntityIdentifier" : "",
  }, 
  ...
]

如何为集合的所有文档将路径为“Descriptions.Items.ItemType”的数组字段重命名为新名称“Descriptions.Items.Type”?

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    你需要使用$map操作符

    db.collection.aggregate([
      {
        $addFields: {
          Descriptions: {
            $map: {
              input: "$Descriptions",
              as: "desc",
              in: {
                $map: {
                  input: "$$desc.Items",
                  as: "item",
                  in: {
                    Field1: "$$item.Field1",
                    Field2: "$$item.Field2",
                    Type: "$$item.ItemsType"
                  }
                }
              }
            }
          }
        }
      }
    ])
    

    MongoPlayground

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 2021-12-31
    • 2020-10-02
    相关资源
    最近更新 更多