问题描述
-
我试图查找不包含key和low字段的文档总数。但是它总是返回true,结果是文档总数。 确实存在此类文档不包含两个字段。
-
这是我尝试的代码:
db.test.aggregate([ { "$group": { "_id" : { user_id: "$id" },"a": { "$sum": { "$cond": [ { $and:[{low:null},{ key:null}] },1,0 ] } },"b": { "$sum": { "$cond": [ { "$ifNull": ["$key",false] },0 ] } },"c": { "$sum": { "$cond": [ { "$ifNull": ["$low",} },{ "$project": { "_id": 0,"a": 1,"b": 1,"c": 1 } } ])
解决方法
在$cond
表达式中,您需要使用聚合运算符,而不是查询语法。
使用{low:null}
代替{$eq:["$low",null]}
,并且使用key
测试。