arrays - Mongodb集合转换

标签 arrays json mongodb

我有一个下面的集合,看起来像一个普通的 Rdbms 表,因此为了获得 Json 和 mongodb 的优势,我想从一种形式转换为另一种形式

我是 MongoDB 新手。

[{
        "ccp": 1,
        "period": 1,
        "sales": 100,
        "units": 50
    },
    {
        "ccp": 1,
        "period": 2,
        "sales": 200,
        "units": 50
    },
    {
        "ccp": 2,
        "period": 1,
        "sales": 100,
        "units": 50
    },
    {
        "ccp": 2,
        "period": 2,
        "sales": 200,
        "units": 50
    }
]

我希望将以上集合转换为以下格式

[{
    "ccp": 1,
    "periods": [{
            "period": 1,
            "sales": 100,
            "units": 50
        },
        {
            "period": 2,
            "sales": 200,
            "units": 50
        }
    ]
},
{
    "ccp": 2,
    "periods": [{
            "period": 1,
            "sales": 100,
            "units": 50
        },
        {
            "period": 2,
            "sales": 200,
            "units": 50
        }
    ]
}
]

最佳答案

可能不是高效的,但这是使用 mongodb 聚合框架实现这一目标的方法

db.collection.aggregate([
   {$group : {_id : "$ccp",
    periods : {$push : {period : "$period", sales : "$sales", units : "$units" }}}},
   {$project : { periods : 1, "ccp" : "$_id" , _id : 0 }}
  ])

关于arrays - Mongodb集合转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49920218/

相关文章:

javascript - 在 for 循环中逐步运行函数

javascript - 是否可以将重复的标签(及其数据)合并到 Chart Js 中的一列中?

javascript - Knockout.js – 获取对象数据

javascript - 将变量传递给 mongo 修饰符

arrays - Scheme 语言中的 3D 数组

ios - 转换 JSON 嵌套对象

javascript - 使用 json 结构中的子项创建列表

asp.net - Javascript 数据绑定(bind)和 SEO

mongodb - 如何使用 MongoDB 聚合来获取每个组的第一个,包括空值?

mongodb - 存储和查询气象数据大数据集的更好方法是什么