Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

db.aggregate()

이 페이지의 내용

  • 정의
  • 예제
db.aggregate()

기본 컬렉션이 필요하지 않은 지정된 관리/진단 파이프라인을 실행합니다. 컬렉션 데이터에 대한 애그리게이션은 db.collection.aggregate() 를 참조하세요.

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 데이터베이스 명령 또는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

데이터베이스 명령에 대해서는 aggregate 명령을 참조하십시오.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

db.aggregate() 메서드의 구문은 다음과 같습니다.

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

pipeline 매개변수는 실행할 단계의 배열입니다. $currentOp 또는 $listLocalSessions 와 같이 기본 collection이 필요하지 않은 호환 단계로 시작해야 합니다.

options 문서에는 다음과 같은 필드 및 값이 포함될 수 있습니다.

필드
유형
설명
explain
부울

선택 사항. 메서드가 파이프라인 처리에 대한 정보를 반환하도록 지정합니다.

예시 는 집계 파이프라인 작업에 대한 반환 정보를 참조하세요.

다중 문서 트랜잭션에서는 사용할 수 없습니다.

allowDiskUse
부울

선택 사항. 임시 파일에 쓰기를 활성화합니다. true 로 설정하면 애그리게이션 작업에서 dbPath 디렉토리의 _tmp 하위 디렉토리에 데이터를 쓸 수 있습니다. 예시 allowDiskUseByDefault과의 상호 작용을 참조하세요.

프로파일러 로그 메시지진단 로그 메시지에는 메모리 제한으로 인해 집계 단계에서 임시 파일에 데이터를 쓴 경우 usedDisk 표시기가 포함됩니다.

cursor
문서
선택 사항. 커서의 초기 배치 크기를 지정합니다. 필드의 cursor 값은 필드가 있는 batchSize 문서입니다. 구문 및 예제 는 초기 배치 크기 지정을 참조하세요.
maxTimeMS
non-negative integer

선택 사항입니다. 커서에서 작업을 처리하는 데 걸리는 시간 제한을 밀리초 단위로 지정합니다. maxTimeMS에 값을 지정하지 않으면 작업이 시간 초과되지 않습니다. 0 값은 바인딩되지 않는 기본 동작을 명시적으로 지정합니다.

MongoDB는 db.killOp()와 동일한 메커니즘을 사용하여 할당된 시간 제한을 초과하는 작업을 종료합니다. MongoDB는 지정된 중단 지점 중 하나에서만 작업을 종료합니다.

bypassDocumentValidation
부울

선택 사항. $out 또는 $merge 애그리게이션 단계를 지정하는 경우에만 적용됩니다.

db.collection.aggregate()가 작업 중에 문서 유효성 검사를 우회할 수 있도록 합니다. 이를 통해 유효성 검사 요구 사항을 충족하지 않는 문서를 삽입할 수 있습니다.

readConcern
문서

선택 사항. 읽기 고려를 지정합니다.

readConcern 옵션의 구문은 다음과 같습니다: readConcern: { level: <value> }

가능한 읽기 고려 수준은 다음과 같습니다.

  • "local"이는 프라이머리 및 보조 노드에 대한 읽기 작업의 읽기 고려 수준입니다.

  • "available"입니다. 프라이머리 및 세컨더리에 대한 읽기 작업에 사용할 수 있습니다. "available"은 프라이머리 및 비 샤드형 세컨더리에 대해 "local"과 동일하게 동작합니다. 쿼리는 인스턴스의 가장 최근 데이터를 반환합니다.

  • "majority". WiredTiger 스토리지 엔진을 사용하는 복제본 세트에 사용할 수 있습니다.

  • "linearizable". primary의 읽기 작업에만 사용할 수 있습니다.

읽기 고려 수준에 대한 자세한 내용은 읽기 고려 수준을 참조하세요.

$out 단계는 읽기 고려 "linearizable"와 함께 사용할 수 없습니다. 즉, db.collection.aggregate()에서 "linearizable" 읽기 고려를 지정할 경우 파이프라인에 $out 단계를 포함할 수 없습니다.

$merge 단계는 읽기 고려 "linearizable"와 함께 사용할 수 없습니다. 즉, db.collection.aggregate()에 대해 "linearizable"의 읽기 고려를 지정하면 파이프라인에 $merge 단계를 포함할 수 없습니다.

collation
문서

선택 사항.

작업에 사용할 데이터 정렬을 지정합니다.

데이터 정렬을 사용하면 대소문자 및 악센트 표시 규칙과 같은 문자열 비교에 대한 언어별 규칙을 지정할 수 있습니다.

데이터 정렬 옵션의 구문은 다음과 같습니다:

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

데이터 정렬을 지정할 때 locale 필드는 필수이고, 다른 데이터 정렬 필드는 모두 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.

데이터 정렬이 지정되지 않았지만 컬렉션에 기본 데이터 정렬이 있는 경우( db.createCollection() 참조), 작업은 컬렉션에 지정된 데이터 정렬을 사용합니다.

컬렉션 또는 연산에 대한 데이터 정렬이 지정되지 않은 경우, MongoDB는 이전 버전에서 문자열 비교에 사용된 간단한 이진 비교를 사용합니다.

한 연산에 대해 여러 데이터 정렬을 지정할 수 없습니다. 예를 들어 필드별로 서로 다른 데이터 정렬을 지정할 수 없으며 정렬과 함께 찾기를 수행하는 경우 찾기 와 정렬에서 각각 다른 데이터 정렬을 사용하는 것은 허용되지 않습니다.

hint
문자열 또는 문서

선택 사항. 애그리게이션에 사용할 인덱스입니다. 인덱스는 집계가 실행되는 초기 컬렉션/뷰에 있습니다.

인덱스 이름 또는 인덱스 사양 문서로 인덱스를 지정합니다.

참고

hint$lookup$graphLookup 단계에 적용되지 않습니다.

comment
문자열
선택 사항. 사용자는 임의의 문자열을 지정하여 데이터베이스 프로파일러, currentOp 및 로그를 통해 작업을 추적할 수 있습니다.
writeConcern
문서

선택 사항입니다. 또는 $out 또는 $merge 단계와 함께 사용할 쓰기 고려를 표현하는 문서입니다.

$out 또는 $merge 단계에서 기본 쓰기 문제를 사용하려면 생략합니다.

다음 예에서는 두 단계로 구성된 파이프라인을 실행합니다. 첫 번째 단계에서는 $currentOp 작업을 실행하고 두 번째 단계에서는 해당 작업의 결과를 필터링합니다.

use admin
db.aggregate( [ {
$currentOp : { allUsers: true, idleConnections: true } }, {
$match : { shard: "shard01" }
}
] )

돌아가기

db.adminCommand

이 페이지의 내용