Docs Menu

Bulk()

MongoDB는 대량 쓰기 작업을 수행하기 위한 db.collection.bulkWrite() 메서드도 제공합니다.

Bulk()

Bulk operations builder used to construct a list of write operations to perform in bulk for a single collection. To instantiate the builder, use either the db.collection.initializeOrderedBulkOp() or the db.collection.initializeUnorderedBulkOp() method.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

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

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.

The builder can construct the list of operations as 주문됨 or unordered.

With an 주문됨 operations list, MongoDB executes the write operations in the list serially. If an error occurs during the processing of one of the write operations, MongoDB will return without processing any remaining write operations in the list.

다음을 사용하세요. db.collection.initializeOrderedBulkOp() to create a builder for an ordered list of write commands.

MongoDB는 ordered 연산 목록을 실행할 경우 operation type 및 연속성을 기준으로 연산을 그룹화합니다(즉, 같은 유형의 연속 연산이 함께 그룹화됨). 그 예로 순서가 지정된 목록에 삽입 연산 2개가 먼저 나오고 그 다음에 업데이트 연산, 또 그 다음에는 다른 삽입 연산이 있는 경우, MongoDB는 이 연산들을 3개의 개별 그룹으로 그룹화합니다. 첫 번째 그룹에는 삽입 연산 2개, 두 번째 그룹에는 업데이트 연산, 세 번째 그룹에는 마지막 삽입 연산이 포함됩니다. 이 동작은 이후의 버전에서 변경될 수 있습니다.

Bulk() operations in mongosh and comparable methods in the drivers do not have a limit for the number of operations in a group. To see how the operations are grouped for bulk operation execution, call Bulk.getOperations() after the execution.

다음도 참조하세요.

샤드 컬렉션에서 ordered 작업 목록을 실행하는 것은 unordered 목록을 실행하는 것보다 일반적으로 느립니다. 정렬된 목록에서는 각 작업이 이전 작업이 완료될 때까지 기다려야 하기 때문입니다.

With an unordered operations list, MongoDB can execute in parallel, as well as in a nondeterministic order, the write operations in the list. If an error occurs during the processing of one of the write operations, MongoDB will continue to process remaining write operations in the list.

다음을 사용하세요. db.collection.initializeUnorderedBulkOp() to create a builder for an unordered list of write commands.

MongoDB는 unordered 연산 목록을 실행할 경우 이 연산들을 그룹화합니다. 순서가 지정되지 않은 대량 연산이 있으면 성능 향상을 위해 목록에 속한 연산의 순서를 변경할 수 있습니다. 따라서 애플리케이션은 unordered 대량 연산을 수행할 때 순서에 의존해서는 안 됩니다.

Bulk() operations in mongosh and comparable methods in the drivers do not have a limit for the number of operations in a group. To see how the operations are grouped for bulk operation execution, call Bulk.getOperations() after the execution.

다음도 참조하세요.

Bulk()분산 트랜잭션 내에서 사용할 수 있습니다.

Bulk.insert() 연산에서는 이 컬렉션이 이미 존재해야 합니다.

Bulk.find.upsert() 연산에서 연산 결과 업서트가 발생할 경우에는 이 컬렉션이 이미 존재해야 합니다.

트랜잭션에서 실행되는 경우 작업에 대한 쓰기 고려를 명시적으로 설정하지 마세요. 트랜잭션에 쓰기 고려를 사용하려면 트랜잭션 및 쓰기 고려를 참조하세요.

중요

대부분의 경우 분산 트랜잭션은 단일 문서 쓰기에 비해 더 큰 성능 비용이 발생하므로 분산 트랜잭션의 가용성이 효과적인 스키마 설계를 대체할 수는 없습니다. 대부분의 시나리오에서 비정규화된 데이터 모델 (내장된 문서 및 배열) 은 계속해서 데이터 및 사용 사례에 최적일 것입니다. 즉, 대부분의 시나리오에서 데이터를 적절하게 모델링하면 분산 트랜잭션의 필요성이 최소화됩니다.

추가 트랜잭션 사용 고려 사항(예: 런타임 제한 및 oplog 크기 제한)은 프로덕션 고려사항을 참조하세요.

The Bulk() builder has the following methods:

이름
설명

작업 목록에 삽입 작업을 추가합니다.

업데이트 또는 제거 작업에 대한 쿼리 조건을 지정합니다.

여러 문서 삭제 작업을 작업 목록에 추가합니다.

작업 목록에 단일 문서 삭제 작업을 추가합니다.

Bulk.find.delete()의 별칭입니다.

Bulk.find.deleteOne()의 별칭입니다.

작업 목록에 단일 문서 바꾸기 작업을 추가합니다.

작업 목록에 단일 문서 업데이트 작업을 추가합니다.

작업 목록에 multi 업데이트 작업을 추가합니다.

업데이트 작업에 upsert: true를 지정합니다.

작업 목록을 일괄적으로 실행합니다.

Bulk() 작업 객체에서 실행된 쓰기 작업의 배열을 반환합니다.

Bulk() 작업 객체의 작업 수 및 배치가 포함된 JSON 문서를 반환합니다.

Bulk.toJSON() 결과를 문자열로 반환합니다.