【发布时间】:2017-10-05 12:37:32
【问题描述】:
我想计算每次特定通话的总支出。
我正在收集具有特定 callId 的订单,然后从结果中汇总 totalPrice 属性。
它有效,除非没有订单,否则我会得到一个空数组。我想将 0 作为 totalSpending 的默认值。
这是我的查询:
Order.aggregate({
$match: { callId: mongoose.Types.ObjectId(callId) }
}, {
$group: { _id: null, totalSpending: { $sum: '$totalPrice' } }
})
如果没有订单,我会得到一个空数组,如果至少有 1 个订单,我会得到[ { _id: null, totalSpending: 50 } ]。
【问题讨论】:
-
按顺序评估聚合管道。您可以只查找空数组并将
totalSpending返回为 0 -
这可能在聚合内部吗?