이 장에서는 몽고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 }
}
}
]
);