Mongo.bulkWrite()
정의
bulkWrite()
한 번의 호출로 여러 데이터베이스 및 컬렉션에 걸쳐 여러 쓰기 (write) 작업을 수행합니다. 이 메서드는 한 번의 호출로 특정 컬렉션에 대한 여러 쓰기 (write) 작업을 수행하는 db.collection.bulkWrite()
을 대체합니다.
참고
Mongo.bulkWrite()
는 MongoDB 8.0 이상에서만 사용할 수 있습니다.
구문
다음 구문을 사용하여 현재 Mongo()
인스턴스에서 bulkWrite()
를 호출할 수 있습니다.
db.getMongo().bulkWrite( [ { namespace: "<db1.collection1>", name: "insertOne", document: { ... } }, { namespace: "<db2.collection2>", name: "replaceOne", filter: { ... } } ], { ordered: boolean, verboseResults: boolean, bypassDocumentValidation: boolean, let: Document } )
다음 예시 와 같이 다른 Mongo
인스턴스 에서 호출할 수도 있습니다.
const otherMongo = Mongo("<other connection string>"); otherMongo.bulkWrite([{ namespace: "<db.collection>", ... }]);
bulkWrite()
두 개의 매개변수를 허용합니다:
Parameter | 유형 | 설명 |
---|---|---|
| 문서 배열 | 쓰기 (write) 작업의 배열 을 정의합니다. 배열 의 각 문서 실행하려는 쓰기 (write) 작업을 나타냅니다. |
| 문서 | 작업에 대한 옵션 을 정의합니다. |
operations
의 문서 는 다음 6가지 작업 중 하나를 나타낼 수 있습니다.
insertOne
하나 교체
UpdateOne
업데이트
deleteOne
deleteMany
다음 섹션에서는 각 작업을 나타내는 문서에 사용해야 하는 구문에 대해 설명합니다.
insertOne
{ namespace: '<db.collection>', name: 'insertOne', document: Document }
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 문서 삽입할 데이터베이스 및 컬렉션 입니다. |
| 문자열 | 작업. 하나의 삽입 작업을 수행하려면 |
| 문서 | 삽입하려는 문서 입니다. |
참고
삽입할 문서 에 _id
필드 지정하지 않으면 mongosh
가 자동으로 _id
를 생성합니다.
하나 또는 다수 업데이트
{ namespace: '<db>.<collection>', name: 'updateOne' | 'updateMany', filter: Document, update: Document | Document[], arrayFilters?: Document[], hint?: Document | string, collation?: Document, upsert?: boolean }
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 문서를 업데이트 하려는 데이터베이스 및 컬렉션 입니다. |
| 문자열 | 작업. 1개의 업데이트 작업을 수행하려면 |
| 문서 | 업데이트 하려는 하나 이상의 문서와 일치하는 필터하다 입니다. 1번 업데이트 작업 중에 |
| 문서 | 수행할 업데이트 입니다. |
| 문서 배열 | (선택 사항) 배열 값 필드 업데이트 경우 |
| 문서 또는 문자열 | (선택 사항) 작업에 사용할 인덱스 . |
| 문서 | (선택 사항) 결과를 정렬할 때 사용할 데이터 정렬 입니다. |
| 부울 | 필터하다 와 일치하는 문서 없는 경우 MongoDB 새 문서 생성할지 여부를 지정합니다. 기본값은 |
replaceOne
{ namespace: '<db>.<collection>', name: 'replaceOne', filter: Document, replacement: Document, hint?: Document | string, collation?: Document }
하나 또는 다수 삭제
{ namespace: '<db>.<collection>', name: 'deleteOne' | 'deleteMany', filter: Document, hint?: Document | string, collation?: Document }
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 문서를 삭제 하려는 데이터베이스 및 컬렉션 입니다. |
| 문자열 | 작업. 하나의 삭제 작업을 수행하려면 |
| 문서 | 삭제 하려는 문서 와 일치하는 필터하다 입니다. 하나 삭제 작업 중에 |
| 문서 또는 문자열 | (선택 사항) 작업에 사용할 인덱스 . |
| 문서 | (선택 사항) 결과를 정렬할 때 사용할 데이터 정렬 입니다. |
옵션
bulkWrite()
와 함께 다음 옵션을 사용할 수 있습니다. 사용하려는 옵션이 포함된 문서 bulkWrite()
(으)로 전달할 수 있습니다. 이 문서 선택 사항입니다.
{ ordered?: boolean, verboseResults?: boolean, bypassDocumentValidation?: boolean, let?: Document }
필드 | 유형 | 설명 |
---|---|---|
| 부울 | (선택 사항) MongoDB 사용자가 제공하는 문서 순서대로 대량 쓰기 (write) 수행함을 나타냅니다. 기본값은 |
| 부울 | (선택 사항) |
| 부울 | (선택 사항) 쓰기 (write) 작업이 문서 유효성 검사 규칙을 우회할지 여부를 지정합니다. 기본값은 |
| 문서 |
출력
bulkWrite()
다음 필드가 있는 객체 반환합니다.
{ acknowledged: boolean, insertedCount: int, matchedCount: int, modifiedCount: int, deletedCount: int, upsertedCount: int, insertResults?: map(int, document), updateResults?: map(int, document), deleteResults?: map(int, document) }
필드 | 유형 | 설명 |
---|---|---|
| 부울 |
|
| integer | 삽입된 문서 수입니다. |
| integer | 필터하다 와 일치하는 문서 수입니다. |
| integer | 수정된 문서 수입니다. |
| integer | 삭제된 문서 수입니다. |
| integer | 업서트된 문서 수입니다. |
| 문서에 정수 매핑 | 선택 사항. 성공적인 각 삽입 작업의 결과를 나타냅니다. 각 작업은 정수 키로 표시되며, 여기에는 작업에 해당하는 정보가 포함된 문서 포함됩니다. 문서에는 다음 필드 포함됩니다.
|
| 문서에 정수 매핑 | 선택 사항. 성공적인 각 업데이트 작업의 결과를 나타냅니다. 각 작업은 정수 키로 표시되며, 여기에는 작업에 해당하는 정보가 포함된 문서 포함됩니다. 문서에는 다음 필드가 포함됩니다.
|
| 문서에 정수 매핑 | 선택 사항. 성공적인 각 삭제 작업의 결과를 나타냅니다. 각 작업은 정수 키로 표시되며, 여기에는 작업에 해당하는 정보가 포함된 문서 포함됩니다. 문서에는 다음 필드 포함됩니다.
|
예시
이 mongosh
명령은 다음 작업을 순서대로 수행합니다.
db.authors
컬렉션 에 문서 삽입합니다.db.books
컬렉션 에 문서 삽입합니다.이전 문서 업데이트합니다.
db.getMongo().bulkWrite( [ { namespace: 'db.authors', name: 'insertOne', document: { name: 'Stephen King' } }, { namespace: 'db.books', name: 'insertOne', document: { name: 'It' } }, { namespace: 'db.books', name: 'updateOne', filter: { name: 'it' }, update: { $set: { year: 1986 } } } ], { ordered: true, bypassDocumentValidation: true } )
mongosh
대량 쓰기 (write) 순서대로 수행하고 다음 문서 반환합니다.
{ acknowledged: true, insertedCount: 2, matchedCount: 1, modifiedCount: 1, deletedCount: 0, upsertedCount: 0, insertResults: { '1': { insertedId: ObjectId('67ed8ce8efd926c84cab7945') }, '2': { insertedId: ObjectId('67ed8ce8efd926c84cab7946') } } updateResults: { '1': { matchedCount: 1, modifiedCount: 1, didUpsert: false } } }