我有一个下面的集合,看起来像一个普通的 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/