提问者:小点点

返回以mongodb表示的字段总数


是否可以从集合中的单个查询中检索与字段名称相关的字段总数?

我期待这样的结果

{
  "field_1":101,
  "field_2":93,
  "field_3":1
}

共1个答案

匿名用户

是的。

操场

db.collection.aggregate({
  $group: {
    _id: null,
    field_2: {
      $push: {
        $cond: [
          "$field_2",
          1,
          0
        ]
      }
    },
    field_1: {
      $push: {
        $cond: [
          "$field_1",
          1,
          0
        ]
      }
    }
  }
},
{
  $project: {
   _id:0,
    field_1: {
      $sum: "$field_1"
    },
    field_2: {
      $sum: "$field_2"
    }
  }
})

注意:

当为true时,$exists匹配包含该字段的文档,包括字段值为null的文档