2017-04-24 95 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 } 
相關問題