所以我使用了一个聚合,如果一个值在一个数组中我匹配,那么就像那些值那样分组:
db.person.aggregate([
{
$match: {"city":{ $in: ["New York", "Denver"]}}
},{
$group: {_id: "$city", total : {$sum:1}}
}
])
{_id:"New York", total:5}
{_id:"Denver", total:2}
这适用于城市是值的情况,但我想返回总数:0,如果城市不在集合中。即:
["New York", "Denver", "Orlando"]
{_id:"New York", total:5}
{_id:"Denver", total:2}
{_id:"Orlando", total:0}
这是可能的还是我应该只检查我的代码中的结果并将0值结果附加到结果中?