MongoDB中按_ID计算null和not null的计数

MongoDB中按_ID计算null和not null的计数,mongodb,mongodb-query,Mongodb,Mongodb Query,希望创建一个关于一组数据的报告,显示数据集的密集/稀疏程度 具体地说,我想 遍历每个_ID在数据集中大约有250个,因此手工制作它们将非常耗时 为每个_ID生成一个空/非空值计数 按如下方式输出上述内容: 客户识别号350000 客户名称150000 200000 客户(德国)200000 150000 有关于如何做到这一点的提示/提示吗?我已经搜索了一段时间,但是通过mapreduce可以遍历所有的_ID键: 然后用这个: mr = db.runCommand({ "mapreduce"

希望创建一个关于一组数据的报告,显示数据集的密集/稀疏程度

具体地说,我想

遍历每个_ID在数据集中大约有250个,因此手工制作它们将非常耗时

为每个_ID生成一个空/非空值计数

按如下方式输出上述内容:

客户识别号350000 客户名称150000 200000 客户(德国)200000 150000

有关于如何做到这一点的提示/提示吗?我已经搜索了一段时间,但是通过mapreduce可以遍历所有的_ID键:

然后用这个:

mr = db.runCommand({
  "mapreduce" : "mpfs",
  "map" : function() {
    for (var key in this) { emit(key, null); }
  },
  "reduce" : function(key, stuff) { return null; }, 
  "out": "mpfs" + "_keys"
})
但是,我不确定如何使用mapreduce集来提供另一个将产生结果的查询


我也不确定这是否是最有效的方法,因为我来自SQL背景……有没有更有效的方法?

您没有提供足够的详细信息来回答问题,但您通常会使用an来完成。嗨,JohnnyHK-谢谢您的回复。我已经将密钥放入结果集中,但仍然不确定如何在聚合管道中使用它-db[mr.result]。distinct_id包含我的结果集,但我似乎无法理解运行以下内容的语法:db.mpfs.aggregate{$group:{u id:db[mr.result]。distinct_id,total:{$exists:true};我们需要更多的细节来帮助。这些文件看起来像什么?文档结构是否已知/指定?Hi Wdberkely-该结构未知/指定不幸的是,有一组.csv文件存在一些重叠和差异。我的初始结果集由以下人员收集: