1
  1. 我试图找到不包含字段键和低字段的文档总数。但它总是返回 true,结果是文档总数。它确实存在这样的文件不包含这两个字段。

  2. 这是我尝试过的代码:

     db.test.aggregate([
    { "$group": {
             "_id" : { user_id: "$id" },
              "a": { 
                "$sum": {
    
            "$cond": [ {
            $and:[{low:null},{ key:null}]
            } , 1, 0
            ]
         } 
         },
    
       "b": { "$sum": {
                 "$cond": [ { "$ifNull": ["$key", false] }, 1, 0 ]
             } },
             "c": { "$sum": {
                 "$cond": [ { "$ifNull": ["$low", false] }, 1, 0 ]
             } },
           } },
           { "$project": {
             "_id": 0,
             "a": 1,
             "b": 1,
             "c": 1
           } }
            ])
    
4

1 回答 1

0

$cond表达式内部,您需要使用聚合运算符,而不是查询语法。

而不是{low:null}使用{$eq:["$low",null]},同样用于key测试。

于 2020-09-10T08:08:32.647 回答