문서 메뉴
문서 홈
/
MongoDB 매뉴얼

집계 작업

이 페이지의 내용

  • 집계 파이프라인
  • 단일 목적 애그리게이션 방식

집계 작업은 여러 문서를 처리하고 계산된 결과를 반환합니다. 집계 작업을 통해 다음과 같은 작업을 수행할 수 있습니다:

  • 여러 문서의 값을 그룹화합니다.

  • 그룹화된 데이터에 대한 연산을 수행하여 하나의 단일 결과를 반환합니다.

  • 시간에 따른 데이터 변화를 분석합니다.

집계 작업을 수행하기 위해 다음을 사용할 수 있습니다:

  • 집계를 수행하는 데 선호되는 방법인 집계 파이프라인.

  • 단일 목적 집계 방법은 간단하지만 집계 파이프라인만큼의 기능이 없습니다.

Aggregation pipeline은 문서를 처리하는 하나 이상의 단계로 구성됩니다.

  • 각 단계는 입력 문서에 대한 연산을 수행합니다. 예를 들어, 한 단계에서는 문서를 필터링하고, 문서를 그룹화하고, 값을 계산할 수 있습니다.

  • 한 단계에서 출력된 문서는 다음 단계로 전달됩니다.

  • 집계 파이프라인은 문서 그룹에 대한 결과를 반환할 수 있습니다. 예를 들어 총값, 평균값, 최대값, 최소값을 반환할 수 있습니다.

집계 파이프라인으로 업데이트에 표시된 단계를 사용하는 경우 집계 파이프라인을 사용하여 문서를 업데이트할 수 있습니다.

참고

다음 집계 파이프라인 예시에는 두 단계가 포함되어 있으며 피자 이름별로 그룹화된 미디엄 사이즈 피자의 총 주문 수량을 반환합니다.

db.orders.aggregate( [
// Stage 1: Filter pizza order documents by pizza size
{
$match: { size: "medium" }
},
// Stage 2: Group remaining documents by pizza name and calculate total quantity
{
$group: { _id: "$name", totalQuantity: { $sum: "$quantity" } }
}
] )

$match 단계:

  • 피자 주문 문서를 sizemedium인 피자로 필터링합니다.

  • 남아있는 문서를 $group 단계로 전달합니다.

$group 단계:

  • 나머지 문서를 피자 name별로 그룹화합니다.

  • $sum을 사용하여 각 피자 name의 총 주문 quantity을 계산합니다. 총계는 집계 파이프라인에서 반환된 totalQuantity 필드에 저장됩니다.

샘플 입력 문서가 포함된 실행 가능한 예제는 전체 Aggregation Pipeline 예제를 참조하세요.

Aggregation pipeline대한 자세한 내용은 Aggregation Pipeline을 참조하세요.

단일 목적 집계 메서드는 단일 컬렉션에서 문서를 집계합니다. 이 메서드는 간단하지만 집계 파이프라인의 기능이 부족합니다.

메서드
설명
db.collection.estimatedDocumentCount()
Collection 또는 보기에 있는 문서의 대략적인 개수를 반환합니다.
Collection 또는 보기에 있는 문서 수의 개수를 반환합니다.
지정된 필드에 고유한 값을 가진 문서의 배열을 반환합니다.
← 맞춤형 커서