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

애그리게이션 단계

이 페이지의 내용

  • 호환성
  • db.collection.aggregate() Stages
  • db.aggregate() 단계
  • 업데이트 가능한 단계

db.collection.aggregate() 메서드 및 db.aggregate() 메서드에서 파이프라인 단계는 배열로 나타납니다. Atlas UI에서 집계 파이프라인 빌더 를 사용하여 파이프라인 단계를 정렬할 수 있습니다. 문서는 순서대로 단계를 거칩니다.

다음 환경에서 호스팅되는 배포서버에 파이프라인 단계를 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

$out, $merge, $geoNear, $changeStream$changeStreamSplitLargeEvent단계를 제외한 모든 단계는 파이프라인에서 여러 번 나타날 수 있습니다.

참고

구문 및 예제를 포함하여 특정 연산자에 대한 자세한 내용을 보려면 연산자의 참조 페이지에 대한 링크를 클릭하십시오.

db.collection.aggregate( [ { <stage> }, ... ] )
단계
설명

문서에 새 필드를 추가합니다. $project와(과) 유사하게 $addFields은(는) 스트림의 각 문서를 재구성합니다. 특히 입력 문서의 기존 필드와 새로 추가된 필드를 모두 포함하는 출력 문서에 새 필드를 추가합니다.

$set$addFields의 별칭입니다.

지정된 표현식과 버킷 경계를 기반으로 수신 문서를 버킷이라는 그룹으로 분류합니다.
지정된 표현식을 기반으로 수신 문서를 버킷이라는 특정 수의 그룹으로 분류합니다. 버킷 경계는 지정된 수의 버킷에 문서를 고르게 분산할 수 있도록 자동으로 결정됩니다.
컬렉션에서 변경 스트림 커서를 반환합니다. 이 단계는 애그리게이션 파이프라인에서 한 번만 발생할 수 있으며 첫 번째 단계로 발생해야 합니다.

16MB를 초과하는 대형 change stream 이벤트를 change stream 커서에 반환되는 작은 조각으로 분할합니다.

$changeStreamSplitLargeEvent$changeStream 파이프라인에서만 사용할 수 있으며 이것이 파이프라인의 마지막 단계여야 합니다.

단계 또는 뷰에 관한 통계를 반환합니다.

aggregation pipeline의 이 단계에 있는 문서 수를 반환합니다.

$count 축적자와는 다릅니다.

필드의 특정 값이 누락된 문서 시퀀스에서 새 문서를 만듭니다.

입력 표현식에서 리터럴 문서를 반환합니다.
동일한 입력 문서 세트의 단일 단계에서 여러 개의 애그리게이션 파이프라인을 처리합니다. 단일 단계에서 여러 차원 또는 패싯에 걸쳐 데이터를 특성화할 수 있는 다면적 애그리게이션을 생성할 수 있습니다.

문서 내에서 null 필드 값과 누락된 필드 값을 채웁니다.

지리 공간적 공간 점과의 근접성을 기준으로 정렬된 문서 스트림을 반환합니다. 지리 공간적 공간 데이터에 $match, $sort, $limit 기능을 통합합니다. 출력 문서에는 추가 거리 필드가 포함되며 위치 식별자 필드가 포함될 수 있습니다.

컬렉션에서 재귀 검색을 수행합니다. 각 출력 문서에 해당 문서에 대한 재귀 검색의 순회 결과를 포함하는 새 배열 필드를 추가합니다.
지정된 식별자 표현식으로 입력 문서를 그룹화하고, 지정된 경우 축적자 표현식을 각 그룹에 적용합니다. 모든 입력 문서를 소비하고 각 개별 그룹당 하나의 문서를 출력합니다. 출력 문서에는 식별자 필드와 누적된 필드(지정된 경우)만 포함됩니다.
컬렉션의 각 인덱스 사용에 관한 통계를 반환합니다.
수정되지 않은 처음 n개 문서를 파이프라인에 전달하며, 여기서 n은 지정된 제한입니다. 각 입력 문서에 대해 문서 1개(처음 n개 문서에 대해) 또는 문서 0개(처음 n개 문서 이후)를 출력합니다.
모든 컬렉션 또는 특정 컬렉션에 대한 샘플링된 쿼리 나열

지정된 컬렉션의 기존 Atlas Search 인덱스 에 대한 정보를 반환합니다.

system.sessions 컬렉션으로 전파될 수 있을 만큼 충분히 오랫동안 활성화된 모든 세션을 나열합니다.
동일한 데이터베이스의 다른 컬렉션에 왼쪽 외부 조인을 수행하여 '조인된(joined)' 컬렉션의 문서를 필터링해 처리합니다.
일치하는 문서만 수정되지 않은 상태로 다음 파이프라인 단계로 전달될 수 있도록 문서 스트림을 필터링합니다. $match는 표준 MongoDB 쿼리를 사용합니다. 각 입력 문서에서 하나의 문서(일치하는 문서) 또는 0개의 문서(일치하지 않는 문서)를 출력합니다.
aggregation pipeline의 결과 문서를 collection에 씁니다. 이 단계에서는 (새 문서 삽입, 문서 병합, 문서 교체, 기존 문서 유지, 작업 실패, 사용자 지정 업데이트 파이프라인으로 문서 프로세스) 결과를 출력 collection에 통합할 수 있습니다. $merge 단계를 사용하려면 파이프라인의 마지막 단계여야 합니다.
aggregation pipeline의 결과 문서를 collection에 씁니다. $out 단계를 사용하려면 파이프라인의 마지막 단계여야 합니다.
collection에 대한 계획 캐시 정보를 반환합니다.

새 필드를 추가하거나 기존 필드를 제거하는 등 스트림의 각 문서 모양을 변경합니다. 각 입력 문서에 대해 하나의 문서를 출력합니다.

기존 필드 제거에 대한 내용은 $unset도 참조하세요.

기록된 쿼리에 대한 런타임 통계를 반환합니다.

경고

$queryStats 애그리게이션 단계는 지원되지 않으며 향후 릴리스에서 안정적임을 보장하지 않습니다. 출력이 향후 릴리스에서 변경될 수 있으므로 이 단계의 특정 출력 형식에 의존하는 기능을 빌드하지 마세요.

문서 자체에 저장된 정보를 기반으로 각 문서의 콘텐츠를 제한해 스트림의 각 문서를 재구성합니다. $project$match의 기능을 통합합니다. 필드 수준 편집을 구현하는 데 사용할 수 있고, 각 입력 문서에서 문서 1개 또는 0개를 출력합니다.

문서를 특정 포함된 문서로 바꿉니다. 이 작업은 _id 필드를 포함하여 입력 문서의 모든 기존 필드를 대체합니다. 입력 문서에 포함된 문서를 지정하여 포함된 문서를 최상위 수준으로 승격합니다.

$replaceWith$replaceRoot 단계의 별칭입니다.

문서를 특정 포함된 문서로 바꿉니다. 이 작업은 _id 필드를 포함하여 입력 문서의 모든 기존 필드를 대체합니다. 입력 문서에 포함된 문서를 지정하여 포함된 문서를 최상위 수준으로 승격합니다.

$replaceWith$replaceRoot 단계의 별칭입니다.

입력에서 지정된 수의 문서를 임의로 선택합니다.

Atlas 컬렉션에서 하나 이상의 필드에 대한 전체 텍스트 검색을 수행합니다.

참고

$search 는 MongoDB Atlas 클러스터에서만 사용할 수 있으며 자체 관리 배포서버에는 사용할 수 없습니다. 자세히 알아보려면 Atlas Search 집계 파이프라인 단계를 참조하세요.

Atlas 컬렉션에 대한 Atlas Search 쿼리에 대해 다양한 유형의 메타데이터 결과 문서를 반환합니다.

참고

$searchMeta 는 MongoDB v4.4.9 이상을 실행하는 MongoDB Atlas 클러스터에서만 사용할 수 있으며 자체 관리형 배포에서는 사용할 수 없습니다. 자세히 알아보려면 Atlas Search 집계 파이프라인 단계를 참조하세요.

문서에 새 필드를 추가합니다. $project와(과) 유사하게 $set은(는) 스트림의 각 문서를 재구성합니다. 특히 입력 문서의 기존 필드와 새로 추가된 필드를 모두 포함하는 출력 문서에 새 필드를 추가합니다.

$set$addFields 단계의 별칭입니다.

문서를 창으로 그룹화하고 각 창의 문서에 하나 이상의 연산자를 적용합니다.

버전 5.0에 추가.

건너뛰기 수가 n으로 지정된 경우 첫 n개의 문서를 건너뛰고 나머지 문서를 수정되지 않은 상태로 파이프라인에 전달합니다. 각 입력 문서에서 문서 0개(첫 n개 문서에서) 또는 문서 1개(첫 n개 문서 이후)를 출력합니다.
지정된 정렬 키를 기준으로 문서 스트림을 재정렬합니다. 주문만 변경되고 문서는 수정되지 않은 상태로 유지되며, 각 입력 문서에서 하나의 문서를 출력합니다.
지정된 표현식의 값을 기준으로 들어오는 문서를 그룹화한 다음 각 고유 그룹의 문서 수를 계산합니다.
두 collection의 union을 수행합니다. 즉, 두 collection의 파이프라인 결과를 단일 결과 세트로 결합합니다.

문서에서 필드를 제거/제외합니다.

$unset는 필드를 제거하는 $project 단계의 별칭입니다.

입력 문서에서 배열 필드를 분해해 요소에 대한 문서를 출력합니다. 각 출력 문서는 배열을 요소 값으로 대체합니다. 각 입력 문서에서 n개의 문서를 출력합니다. 여기서 n은 배열 요소의 개수이며, 빈 배열의 경우 0이 될 수 있습니다.

Atlas 컬렉션의 지정된 필드에 있는 벡터에 대해 ANN 검색을 수행합니다.

버전 7.0.2에 새로 추가됨:

참고

$vectorSearch 는 MongoDB v6.0.11 이상을 실행하는 MongoDB Atlas 클러스터에서만 사용할 수 있으며 자체 관리형 배포에서는 사용할 수 없습니다. 자세히 알아보려면 Atlas Search 집계 파이프라인 단계를 참조하세요.

파이프라인 단계에서 사용할 집계 표현식 연산자는 집계 연산자를 참조하세요.

MongoDB는 db.aggregate() 메서드도 제공합니다.

db.aggregate( [ { <stage> }, ... ] )

다음 단계에서는 db.collection.aggregate() 메서드가 아닌 db.aggregate() 메서드를 사용합니다.

단계
설명
컬렉션에서 변경 스트림 커서를 반환합니다. 이 단계는 애그리게이션 파이프라인에서 한 번만 발생할 수 있으며 첫 번째 단계로 발생해야 합니다.
MongoDB deployment의 활성 및/또는 휴면 작업에 대한 정보를 반환합니다.
입력 값에서 리터럴 문서를 반환합니다.
현재 연결된 mongos 또는 mongod 인스턴스에서 최근에 사용 중인 모든 활성 세션을 나열합니다. 이러한 세션이 아직 system.sessions collection으로 전파되지 않았을 수 있습니다.

업데이트에 집계 파이프라인을 아래에서 사용할 수 있습니다.

업데이트의 경우 파이프라인은 다음 단계로 구성될 수 있습니다.

돌아가기

명령.

다음

$addFields