我目前正在尝试按年份(然后是月份)组织数据,并查看该月的“总票价”。我已经按年和月对数据进行了分组,但是我不知道如何获取该月的“总票价”。
我当前的群组查询如下:
{
$group: {
_id : "$year", month: { $addToSet: "$month" },
"totalFare" : { "$sum": "$fare"}
}
}
对数据进行排序,如this
如您所见,totalFare显示的是一年的票价,而不是月份的票价。我也尝试过使用$ addToSet函数来添加总票价,但是当我尝试这样做时却遇到了错误。有什么想法吗?
答案 0 :(得分:0)
再花一个小时。我设法找到了解决方案。我需要事先添加另一个组来按年和月组织数据,然后使用另一个组来格式化结果。
{
$group: {
'_id': {
"month": "$month",
"year": "$year",
},
"totalFare" : { "$sum": "$fare"}
}
},
{
$group: {
_id : "$_id.year",
month: {
"$addToSet": {
"monthName": "$_id.month",
"totalFare": "$totalFare"
}
}
}
}
这提供了以下output
希望这对遇到类似问题的人有用!