我正在尝试根据某些条件在 mongodb 中聚合一个字段。当至少有一个匹配时,这可以正常工作,但否则会引发错误。当没有匹配时,我想将聚合值设为 0。下面的代码需要修改什么?
注意:fromDate并toDate通过 API Payload 传递。
“errorMesssage”:“无法读取未定义的属性‘数量’”
DTO:
export class MetricsDTO {
fromDate: Date;
toDate: Date;
}
服务
async getRevenue(metricClause: Partial<MetricsDTO>) {
if (Object.keys(metricClause).length == 0) {
var rev = await this.bookingsModel.aggregate([
{ $group: { _id: null, amount: { $sum: '$GrossAmount' } } }
])
} else {
var rev = await this.bookingsModel.aggregate([
{ $match: { TxnDate: { $gte: metricClause.fromDate, $lte: metricClause.toDate } } },
{ $group: { _id: null, amount: { $sum: '$GrossAmount' } } }
])
}
return rev[0].amount;
}
有效载荷
{
"fromDate": "2019-10-24",
"toDate": "2019-10-25"
}