2017-04-24 42 views
1

如何获取MongoDB集合中任何文档中出现的字段的最大数量及其名称的数量。 例如,有一个名为testCollection的集合,其中有10个文档,其中包含任意数量的第一级字段或键。查找MongoDB集合中任何文档中的最大字段数

我需要知道检测具有最大数量的字段及其名称的文档或文档的最快方式。

我尝试过使用强力查找所有方法并遍历每个文档,但这不是对于具有大量行数的集合所需的解决方案。

+1

什么是你的使用情况?最快的方法是使用每个文档中字段数量的计数来维护一个索引字段,但是当您添加和删除字段时,您的应用程序代码将负责维护计数。如果没有明确地跟踪现场计数,您将不得不求助于集合扫描,但是这一要求似乎并不常见。 – Stennie

回答

0

一个小小的图书馆,可以帮助你:

npm install objectdigger 

和示例:

var objectdigger = require("objectdigger") 


var item = { 
    "a": "a", 
    "b": "b", 
    "c": { 
     "c1" : "c1", 
     "c2" : "c2", 
     "c3" : { 
      "c3a" : "c3a", 
      "c3b" : "c3b", 
      "c3c" : [ 
       { "c3ca" : "c3ca" }, 
       { "c3cb" : "c3cb" }, 
       "zzz", 
       { 3: "444"} 
      ] 
     } 
    } 

}; 


console.log(objectdigger.findDeepest(item)); 

为输出:

{ maxKey: 'c.c3.c3c.c3ca', value: 'c3ca', depth: 3 } 
相关问题