【发布时间】:2021-09-05 08:37:06
【问题描述】:
见playground。这是查询:
db.collection.aggregate([
{
$match: {
time: {
$gte: 20,
$lte: 40
}
}
},
{
$group: {
_id: null,
amount: {
$sum: "$amount"
}
}
},
{
$project: {
_id: 0,
amount: 1
}
}
])
如果没有找到匹配,它只返回一个空数组。我希望它返回[{amount: 0}],即使没有匹配。怎么可能?
【问题讨论】:
-
不要使用匹配查询,而是在
$sum中应用$cond。通过在匹配查询中应用条件,您将这些文档限制在下一阶段。让我知道想要相同的代码 -
是的,你能举个例子吗?
-
添加了一个答案,看看是不是你要找的。span>
标签: mongodb mongoose aggregation-framework