2017-04-24 2 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 } 
관련 문제