首页 > 解决方案 > 返回 mongodb 中的总字段数

问题描述

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

我期待这样的结果

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

标签: node.jsmongodb

解决方案


是的

操场

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 的文档


推荐阅读