db.collection.initializeUnorderedBulkOp()
팁
MongoDB는 대량 쓰기 작업을 수행하기 위한 db.collection.bulkWrite()
메서드도 제공합니다.
정의
db.collection.initializeUnorderedBulkOp()
중요
Mongo쉬 방법
이 페이지에서는
mongosh
메서드를 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.
컬렉션에 대한 새
Bulk()
작업 빌더를 초기화하고 반환합니다. 이 빌더는 MongoDB가 일괄적으로 실행하는 쓰기 작업을 순서가 지정되지 않은 목록으로 구성합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
행동
작업 순서
순서가 지정되지 않은 작업 목록을 사용하면 MongoDB가 목록에 있는 쓰기 작업을 순서와 상관없이 병행하여 실행할 수 있습니다. 작업 순서가 중요하다면 db.collection.initializeOrderedBulkOp()
를 대신 사용하세요.
연산 실행
MongoDB는 unordered
작업 목록을 실행할 때 해당 작업을 그룹화합니다. 순서가 지정되지 않은 대량 작업의 경우 목록에서 작업 순서가 변경되어 성능이 향상될 수 있습니다. 따라서 애플리케이션은 unordered
대량 작업을 수행할 때 순서에 의존해서는 안 됩니다.
mongosh
의 Bulk()
작업과 드라이버의 유사한 메서드에는 그룹의 작업 수에 대한 제한이 없습니다. 대량 작업 실행을 위해 작업이 어떻게 그룹화되는지 확인하려면 실행 후 Bulk.getOperations()
를 호출합니다.
Error Handling
쓰기 작업 중 하나를 처리하는 동안 오류가 발생하더라도 MongoDB는 목록에 있는 나머지 쓰기 작업을 계속 처리합니다.
예시
다음은 Bulk()
작업 빌더를 초기화하고 여러 문서를 추가하는 일련의 삽입 작업을 추가합니다.
var bulk = db.users.initializeUnorderedBulkOp(); bulk.insert( { user: "abc123", status: "A", points: 0 } ); bulk.insert( { user: "ijk123", status: "A", points: 0 } ); bulk.insert( { user: "mop123", status: "P", points: 0 } ); bulk.execute();