我在上面看到了一些问题,看起来和我的问题很相似,但我找不到我的问题的答案。如果有,请指给我看。
在我的聚合管道中,有许多文档是分组阶段的输出,如下所示:
{
_id: "2019-06",
revenue: 20391.71
},
{
_id: "2019-03",
revenue: 10190.44
},
...
_id
键对应月份,revenue
对应收入。
我希望获得一个包含上述所有信息的文档,如下所示:
{
"2019-03": 10190.44,
"2019-06": 20391.71,
...
}
这个操作看起来应该很容易做,但是我不能理解$mergeObjects
,它似乎是一个明显的候选者。
发布于 2021-01-28 02:50:09
您可以使用arrayToObject
,只需稍加修改即可
db.collection.aggregate([
{
"$group": {
_id: null,
data: {
$push: {
"k": "$_id",
"v": "$revenue"
}
}
}
},
{
"$project": {
"res": {
"$arrayToObject": "$data"
},
"_id": 0
}
}
])
https://stackoverflow.com/questions/65925149
复制相似问题