我对“ groupby”有一个简单的mongodb查询:
db.stories.aggregate(
[
{
$group: {
_id: "$epic",
sum: {$sum: "$sp"}
}
}
]
);
输出显然是一个看起来像这样的数组:
[{_id: "abc", sum: 123}, {_id: "xyz", sum: 356}]
我正在寻找的是将其作为对象而不是数组返回。我知道这里有$ map和$ arrayToObject,但不确定在哪里插入。
所需的结果是:
{
"abc": 123,
"xyz": 356}
我从这里尝试了建议的答案: proposed answer
我尝试过:
db.stories.aggregate(
[
{
$group: {
_id: "$epic",
sum: {$sum: "$sp"}
}
},
{
$project: {
epics : { "$arrayToObject": {
"$map": {
"input": "$epics",
"as": "el",
"in": {
"k": "$$el._id",
"v": "$$el.sum"
}
}
}
}
}
}
]
);
仍然不起作用...