mongodb - 统计mongodb中空字段的个数

标签 mongodb mongodb-query

是否可以统计mongodb中有多少个字段等于null?

我不是在询问集合中某个字段(具有具体名称)有多少次为 null,而是在询问文档中有多少个字段(通配符名称)等于 null。我想要获取的是整个集合中等于 null 的字段的平均数量。

最佳答案

您可以在 3.4 中尝试以下聚合

$objectToArray 返回文档中的所有键和值对,然后使用 $unwind 将每个文档展平为多个文档,每个文档都带有键值对和 $group 在整个集合中检查所有字段值是否为 null,并使用 $sum 来累加值。

$cond 查询条件为 null 时输出 1,否则为 0。$$ROOT 访问整个文档。

db.col.aggregate([
  {"$project":{
  "arrayofkeyvalue":{"$objectToArray":"$$ROOT"}
  }},
  {"$unwind":"$arrayofkeyvalue"},
  {"$group":{
    "_id":null,
    "count":{"$sum":{"$cond":[{"$eq":["$arrayofkeyvalue.v",null]},1,0]}}
  }}
])

关于mongodb - 统计mongodb中空字段的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48210236/

相关文章:

Javascript Promise 过早解析

database - 无法在 MongoDB 中使用聚合函数

mongodb - NOT AND 在 mongodb 中

c# - 正则表达式匹配 MongoDB 中字符串中单词的开头

node.js - 更新我的模型后,森林管理员没有更新字段

node.js - 在 node.js 应用程序之间共享 MongoDb 连接

mongodb - PyMongo SON 操纵器/转换不工作(mongodb)

mongodb - mongoDB 中 WriteConcern 的使用

MongoDB:数组字段中不同值的总数

mongodb - MGO : Can't canonicalize query: BadValue unknown operator: $meta