이 장에서는 몽고DB 문서 데이터의 일괄 작업 (bulkWrite)을 몽고 셸을 사용하여 소개합니다. 여기서 일괄 작업은 이전 장에서 언급된 문서의 일괄 업데이트뿐만 아니라 문서 삽입, 업데이트 및 삭제와 같은 일괄 쓰기 작업을 수행할 수 있는 기능을 포함합니다.

bulkWrite 함수는 몽고 셸에서 일괄 작업에 사용됩니다.

팁: 일괄 작업은 일괄 데이터 동기화가 필요한 시나리오에서 자주 사용됩니다.

bulkWrite 함수에서 지원하는 쓰기 작업

일괄 작업은 다음과 같은 쓰기 작업 조합을 지원합니다:

  • insertOne - 문서 삽입
  • updateOne - 문서 업데이트
  • updateMany - 문서 일괄 업데이트
  • replaceOne - 문서 교체
  • deleteOne - 문서 삭제
  • deleteMany - 문서 일괄 삭제

구문 형식

db.collection.bulkWrite(
   [ <작업 1>, <작업 2>, ... ],
)

설명:

  • 작업 - 쓰기 작업 구성을 나타냅니다
  • bulkWrite는 쓰기 작업의 배열을 입력으로 받습니다.

예시

다음은 문서 쓰기 작업의 일괄 실행을 보여주는 포괄적인 예시입니다.

db.inventory.bulkWrite(
      [
	     // 문서 삽입
         { insertOne :
            {
			// 문서 내용
               "document" :
               {
                  "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
               }
            }
         },
         { insertOne :
            {
               "document" :
               {
                  "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
               }
            }
         },
		 // 문서 업데이트, updateMany는 일괄 문서 업데이트에 유사합니다
         { updateOne :
            {
			   // 업데이트 조건
               "filter" : { "char" : "Eldon" },
			   // 업데이트 내용
               "update" : { $set : { "status" : "Critical Injury" } }
            }
         },
		 // 문서 삭제, deleteMany는 여러 문서를 삭제하는 데 유사합니다
         { deleteOne :
		    // 삭제 조건
            { "filter" : { "char" : "Brisbane" } }
         },
		 // 문서 교체
         { replaceOne :
            {
			    // 교체 조건
               "filter" : { "char" : "Meldane" },
			   // 교체 내용
               "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
            }
         }
      ]
   );