【发布时间】:2020-10-26 02:14:08
【问题描述】:
是否可以在聚合结果中添加一个字段?我的目标是对所有结果进行总和。目前,我只是减少结果,但我认为这不如通过查询解决它。
aggregate([
{
$match: {
time: { $gte: start, $lte: end },
},
},
{
$group:
{
_id: { $dateToString: { format: '%Y-%m-%d', date: '$time' } },
totalAmount: { $sum: '$payment.amount' },
},
},
]).exec().then((result) => {
return {
total: result.reduce(((acc, curr) => acc + curr.totalAmount), 0),
dates: result,
};
});
结果是:
{
"_id":"2020-06-06",
"totalAmount":12
},
{
"_id":"2020-07-06",
"totalAmount":12
}
知道如何获得所有人的总数,看起来像这样但没有减少部分吗?
{
"total": 24,
"dates": [
{
"_id": "2020-06-06",
"totalAmount": 12,
},
{
"_id": "2020-07-06",
"totalAmount": 12,
}
]
}
【问题讨论】:
标签: javascript mongodb typescript mongoose aggregation-framework