我遇到的问题我认为会经常发生,但在研究期间我无法找到足够的信息。
我的问题是我希望返回的查询具有给定的JSON格式,但是当匹配过滤掉所有文档时,我得不到json。
一个简单的例子:如果文档符合给定条件,我想计算,所以我有以下查询
db.collection.aggregate( [{
$match: {
type: /^1[.]2[.]3[.].*$/
}
}, {
$group: {
_id: {$ifNull : ["$type", 0]},
count: { $sum: 1 }
}
}]);
如果我至少有一个匹配的文档,则查询有效:
{ "_id" : "1.2.3", "count" : 44 }
如果我没有文件,我想收到这样的json:
{ "_id" : "1.5.3", "count" : 0 }
这可能吗?
ps:这是一个简化的案例,在应用程序端处理它并不那么容易,所以我宁愿尝试调整我的查询