2014-02-06 1 views
1

약 200,000 개의 문서가있는 mongo db가 있습니다. 문서의 스키마는 다음과 같습니다.Mongodb - 다중 카운트 vs 집계 프레임 워크 성능

doc : { 
    'class' : String, 
    'data' : {} 
} 

클래스는 a, b 또는 c가 될 수 있습니다.

클래스 당 문서 수를 알아야합니다.

어떤 쿼리의 성능이 더 좋습니까? 집계 프레임 워크를 사용하여 쿼리를 작성하거나 각각 다른 클래스의 문서를 계산하는 3 개의 쿼리를 작성하십시오.

감사합니다.

+1

가장 좋은 방법은 실험입니다. '$ group'은 인덱스가 –

+1

인 경우 인덱스를 사용하지 않으며 orid와 동의합니다. 이론적 인 대답이 좋은 경우에도 전체 예제, 쿼리 패턴 등을 제공해야합니다. 질문은 "집을 짓는 방법은 두 개의 창이 있어야합니다. 벽돌을 사용 하시겠습니까?"와 같습니다. – mnemosyn

답변

0

난 당신이 몇 가지 간단한 이유를 들어, aggregation framework를 사용한다고 생각 :

  • 그것은 빠르고이고 (당신이 그룹화하기 전에 $ 프로젝트를 사용하지 않는 경우 특히) 인덱스를 사용할 수 있습니다.
  • mongod를 한 번 호출합니다. 간단하고 깨끗하며 쉽게 모니터링 할 수 있습니다.
  • 나중에 클래스를 추가하는 경우 에서 집합 체인을 변경할 필요가 없습니다. 대조적으로, 다른 count 문을 선택하면 하나 이상의 명령문을 추가해야하며 결과를 처리하기 위해 응용 프로그램 코드도 변경해야합니다.