首页 > 解决方案 > 将对象转换为数组 mongoDB

问题描述

文档 1:需要将对象转换为数组。我必须迭代键和值的每个元素,如何将对象转换为数组。

{
  "Data":{
    "A" :{
      "name" : alpha,
      "Score" : 199
    },
    "B" :{
      "name" : Beta,
      "Score" : 122
    }
  }
}

预期输出:

{
  "name" :[
    alpha,
    Beta
  ],
  "score": [
    199,
    122
  ]
}

标签: arraysmongodbmongoosemongodb-queryaggregation-framework

解决方案


您可以使用 mongo 聚合框架来实现这一点。

[
  {
    "$addFields": {
      "Data": {
        "$objectToArray": "$Data"
      }
    }
  },
  {
    $unwind: "$Data"
  },
  {
    "$group": {
      "_id": "_id",
      "name": {
        $push: "$Data.v.name"
      },
      "score": {
        $push: "$Data.v.Score"
      },
      
    }
  }
]

Mongo 游乐场:https ://mongoplayground.net/p/JVTW5rEoJoa


推荐阅读