对象数组中的 MongoDB 格式数据

问题描述 投票:0回答:1

我的 MongoDB 集合数据存储在如下文档中:

{
  "_id": "657c54befca2b6a2cdd935ba",
  "data": {
    "name": "Bob",
    "surname": "xxx",
    "age": "20",
  },
  "header": {
    "data": "1702646974156",
  }
  "_class": "Prova"
}
{
  "_id": "657c54befca2b6a2cdd935bb",
  "data": {
    "name": "Tom",
    "surname": "yyy",
    "age": "25",
  },
  "header": {
    "data": "1702646974156",
  }
  "_class": "Prova"
}

可以通过查询/聚合来获取已经格式化为对象数组的数据

{
  "data": [
    {
      "member": {
          "name": "Bob",
          "surname": "xxx"
      }
    },
    {
      "member": {
          "name": "Tom",
          "surname": "xxx"
      }
    }
  ]
}

致以诚挚的问候

database mongodb nosql aggregation-framework
1个回答
0
投票

您可以通过像这样的聚合来做到这一点:

db.collection.aggregate([
  {
    "$set": {
      "dataX.member": "$data"
    }
  },
  {
    "$unset": "dataX.member.age"
  },
  {
    $group: {
      _id: null,
      data: {
        $push: "$dataX"
      }
    }
  },
  {
    "$project": {
      _id: 0
    }
  }
])

请参阅此处了解工作示例。

© www.soinside.com 2019 - 2024. All rights reserved.