Docs Menu
Docs Home
/ /
CRUD 작업

대량 작업

이 가이드 에서는 Node.js 운전자 사용하여 대량 작업을 수행하는 방법을 학습 수 있습니다. 대량 작업은 서버 에 대한 호출 수를 줄이는 데 도움이 됩니다. 각 작업에 대한 요청 보내는 대신 하나의 조치 내에서 여러 작업을 수행할 수 있습니다.

대량 작업에 대해 자세히 학습 MongoDB Server 매뉴얼에서 대량 쓰기 작업을 참조하세요.

이 가이드에는 다음 섹션이 포함되어 있습니다.

  • 대량 삽입 작업 에서는 컬렉션 또는 클라이언트에서 대량 삽입 작업을 수행하는 방법을 설명합니다.

  • 대량 바꾸기 작업 에서는 컬렉션 또는 클라이언트에서 대량 바꾸기 작업을 수행하는 방법을 설명합니다.

  • 대량 업데이트 작업 에서는 컬렉션 또는 클라이언트에서 대량 업데이트 작업을 수행하는 방법을 설명합니다.

  • 대량 삭제 작업 에서는 컬렉션 또는 클라이언트에서 대량 삭제 작업을 수행하는 방법을 설명합니다.

  • 반환 유형은 대량 쓰기 (write) 작업의 결과로 생성되는 반환 객체 설명합니다.

  • 예외 처리에서는 대량 쓰기 (write) 작업의 작업이 실패할 경우 발생하는 예외에 대해 설명합니다.

  • 추가 정보 에서는 이 가이드 에 언급된 유형 및 메서드에 대한 리소스 및 API 문서 링크를 제공합니다.

중요

서버 및 드라이버 버전 요구 사항

컬렉션 수준 대량 쓰기 (write) 작업에는 다음 버전이 필요합니다.

  • MongoDB Server 버전 3.2 이상

  • Node.js 운전자 버전 3.6 이상

이 가이드 의 예제에서는 movies users sample_mflix Atlas 샘플 데이터 세트에 포함된 데이터베이스 의 및 컬렉션을 사용합니다. 무료 MongoDB Atlas cluster 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 Atlas 시작하기 가이드 참조하세요.

대량 삽입 작업을 수행하려면 삽입하려는 각 문서 에 대해 대량 작업 모델을 만듭니다. 그런 다음 이러한 모델 목록을 bulkWrite() 메서드에 전달합니다.

컬렉션 에서 대량 삽입 작업을 수행하려면 각 작업에 대해 InsertOneModel 을 만듭니다. 그런 다음 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다. InsertOneModel를 만들려면 모델의 document 필드 지정하고 삽입하려는 문서 로 설정하다 .

이 예에서는 다음 조치를 수행합니다.

  1. 배열 에 InsertOneModel 인스턴스 두 개를 지정합니다. 각 InsertOneModelsample_mflix 데이터베이스 의 movies 컬렉션 에 삽입할 문서 나타냅니다.

  2. movies 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다.

  3. 삽입된 문서 수를 인쇄합니다.

대량 교체 작업을 수행하려면 교체하려는 각 문서 에 대해 대량 작업 모델을 만듭니다. 그런 다음 이러한 모델 목록을 bulkWrite() 메서드에 전달합니다.

컬렉션 에서 대량 바꾸기 작업을 수행하려면 각 작업에 대해 ReplaceOneModel 을 만듭니다. 그런 다음 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다.

다음 표에서는 ReplaceOneModel에서 설정하다 수 있는 필드에 대해 설명합니다.

필드
설명

filter

The filter that matches the document you want to replace.
Type: Document

replacement

The replacement document.
Type: Document

collation

(Optional) The collation to use when sorting results. To learn more about collations, see the Collations guide.
Type: String or Object

hint

(Optional) The index to use for the operation. To learn more about indexes, see the Indexes on Collections guide.
Type: Bson

upsert

(Optional) Whether a new document is created if no document matches the filter.
By default, this field is set to false.
Type: Boolean

이 예에서는 다음 조치를 수행합니다.

  1. 배열 에 ReplaceOneModel 인스턴스 두 개를 지정합니다. ReplaceOneModel 인스턴스에는 movies 컬렉션 의 영화를 나타내는 문서를 대체하는 지침이 포함되어 있습니다.

  2. movies 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다.

  3. 수정된 문서 수를 인쇄합니다.

대량 업데이트 작업을 수행하려면 수행하려는 각 업데이트 에 대한 대량 작업 모델을 생성합니다. 그런 다음 이러한 모델 목록을 bulkWrite() 메서드에 전달합니다.

컬렉션 에서 일괄 업데이트 작업을 수행하려면 각 작업에 대해 UpdateOneModel 또는 UpdateManyModel 를 만듭니다. 그런 다음 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다. UpdateOneModel 은 필터하다 와 일치하는 하나 문서 만 업데이트하고 UpdateManyModel 는 필터하다 와 일치하는 모든 문서를 업데이트합니다.

다음 표에서는 UpdateOneModel 또는 UpdateManyModel에서 설정하다 수 있는 필드에 대해 설명합니다.

필드
설명

filter

The filter that matches one or more documents you want to update. When specified in an UpdateOneModel, only the first matching document will be updated. When specified in an UpdateManyModel, all matching documents will be updated.
Type: Document

update

The update to perform.
Type: Document

arrayFilters

(Optional) A set of filters specifying which array elements an update applies to if you are updating an array-valued field.
Type: Array

collation

(Optional) The collation to use when sorting results. To learn more about collations, see the Collations guide.
Type: Object

hint

(Optional) The index to use for the operation. To learn more about indexes, see the Indexes on Collections guide.
Type: String or Object

upsert

(Optional) Whether a new document is created if no document matches the filter. By default, this field is set to false.
Type: Boolean

이 예에서는 다음 조치를 수행합니다.

  1. 배열 에 UpdateOneModelUpdateManyModel 인스턴스 지정합니다. 이러한 모델에는 movies 컬렉션 의 영화를 나타내는 문서를 업데이트 위한 지침이 포함되어 있습니다.

  2. movies 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다.

  3. 수정된 문서 수를 인쇄합니다.

대량 삭제 작업을 수행하려면 각 삭제 작업에 대한 대량 작업 모델을 만듭니다. 그런 다음 이러한 모델 목록을 bulkWrite() 메서드에 전달합니다.

컬렉션 에서 일괄 삭제 작업을 수행하려면 각 작업에 대해 DeleteOneModel 또는 DeleteManyModel 를 만듭니다. 그런 다음 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다. DeleteOneModel 은 필터하다 와 일치하는 문서 하나만 삭제하고 DeleteManyModel 는 필터하다 와 일치하는 모든 문서를 삭제합니다.

다음 표에서는 DeleteOneModel 또는 DeleteManyModel에서 설정하다 수 있는 필드에 대해 설명합니다.

필드
설명

filter

The filter that matches one or more documents you want to delete. When specified in a DeleteOneModel, only the first matching document will be deleted. When specified in a DeleteManyModel, all matching documents will be deleted.
Type: Document

collation

(Optional) The collation to use when sorting results. To learn more about collations, see the Collations guide.
Type: Object

hint

(Optional) The index to use for the operation. To learn more about indexes, see the Indexes on Collections guide.
Type: String or Object

이 예에서는 다음 조치를 수행합니다.

  1. 배열 에 DeleteOneModelDeleteManyModel 인스턴스 를 지정합니다. 이러한 모델에는 movies 컬렉션 에서 문서를 삭제 하는 지침이 포함되어 있습니다.

  2. movies 컬렉션 에서 bulkWrite() 메서드를 호출하고 모델 배열 매개 변수로 전달합니다.

  3. 삭제된 문서 수를 인쇄합니다.

Collection.bulkWrite() 메서드는 대량 작업에 대한 정보를 제공하는 BulkWriteResult 객체 반환합니다.

다음 표에서는 BulkWriteResult 객체 의 필드에 대해 설명합니다.

필드
설명

insertedCount

삽입된 문서 수

matchedCount

일치하는 문서 수

modifiedCount

업데이트된 문서 수

upsertedCount

업서트된 문서 수

deletedCount

삭제된 문서 수

컬렉션 에서 호출된 대량 쓰기 (write) 작업이 실패하면 Node.js 운전자 MongoBulkWriteError 을 발생시키고 ordered 옵션이 true로 설정하다 경우 추가 작업을 수행하지 않습니다. ordered 을(를) false(으)로 설정하다 하면 후속 작업을 계속 시도합니다.

순서가 지정된 대량 작업과 순서가 지정되지 않은 대량 작업에 대해 자세히 학습 MongoDB Server 매뉴얼의 대량 쓰기 가이드 에서 순서가 지정된 작업과 순서가 지정되지 않은 작업 섹션을 참조하세요.

MongoBulkWriteError 객체 에는 다음과 같은 속성이 포함되어 있습니다.

속성
설명

message

The error message.
Type: String

writeErrors

An array of errors that occurred during the bulk write operation.
Type: BulkWriteError[]

writeConcernErrors

Write concern errors that occurred during execution of the bulk write operation.
Type: WriteConnectionError[]

result

The results of any successful operations performed before the exception was thrown.
Type: BulkWriteResult[]

err

The underlying error object, which may contain more details.
Type: Error

대량 작업에 대해 자세히 학습 MongoDB Server 매뉴얼에서 대량 쓰기 작업을 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

문서 삭제

이 페이지의 내용