将对象数组转换为数组

时间:2019-07-18 13:26:46

标签: mongodb aggregation-framework

我是NoSQL数据库和MongoDb的新手。我有以下问题:

我有一些此类文件:

import requests

result = requests.get('https://api.freebinchecker.com/bin/371241')

encoded_response = json.dumps(result.text)
output = json.loads(encoded_response)
print(output)

我想使用聚合管道将其转换为以下文档:

{
  vals: [
    {
      value: 111,
      timestamp: 1563454669669
    },
    {
      value: 222,
      timestamp: 1563454689665
    },
    {
      value: 333,
      timestamp: 1563454669658
    }
    .......
  ]
}

在使用关系数据库多年后,很难理解。

1 个答案:

答案 0 :(得分:2)

您可以使用$map运算符将一个数组转换为另一个数组:

db.collection.aggregate([
    {
        $project: {
            vals: {
                $map: {
                    input: "$vals",
                    in: [ "$$this.value", "$$this.timestamp" ]
                }
            }
        }
    }
])

Mongo Playground