Bulk.find.update()
팁
MongoDB는 대량 쓰기 작업을 수행하기 위한 db.collection.bulkWrite()
메서드도 제공합니다.
설명
Bulk.find.update(<update>)
대량 작업 목록에
multi
업데이트 작업을 추가합니다. 이 메서드는 기존 문서의 특정 필드를 업데이트합니다.Bulk.find()
메서드를 사용하여 업데이트할 문서를 결정하는 조건을 지정합니다.Bulk.find.update()
메서드는 일치하는 모든 문서를 업데이트합니다. 단일 문서 업데이트를 지정하려면Bulk.find.updateOne()
을 참조하세요.Bulk.find.update()
는 다음 매개 변수를 허용합니다.Parameter유형설명문서 또는 파이프라인수정 사항을 적용합니다. 다음 중 하나일 수 있습니다.
문서 업데이트업데이트 연산자 표현식만 포함합니다.집계 파이프라인다음 집계 단계만 포함합니다.
$addFields
및 그 별칭$set
$replaceRoot
및 별칭$replaceWith
입니다.
업데이트 수정 매개변수에 대한 자세한 내용은
db.collection.updateMany()
참조 페이지를 참조하세요.Bulk.find()
의 연관된<query>
문서와 업데이트 문서의 합은 최대 BSON 문서 크기 이하여야 합니다.이 작업에 대해 upsert: true를 지정하려면
Bulk.find.upsert()
와 함께 사용하세요.Bulk.find.upsert()
를 사용하면Bulk.find()
쿼리 조건과 일치하는 문서가 없는 경우 업데이트 작업이 단일 문서만 삽입합니다.특정 배열 요소를 업데이트하기 위해
arrayFilters
를 지정하려면Bulk.find.arrayFilters()
와 함께 사용하세요.연계된
Bulk.find()
에 사용할 인덱스를 지정하려면Bulk.find.hint()
를 참조하세요.문서 전체를 대체하려면
Bulk.find.replaceOne()
을 참조하세요.
예시
다음 예시에서는 items
컬렉션에 대한 Bulk()
작업 빌더를 초기화하고 다양한 multi
업데이트 작업을 작업 목록에 추가합니다.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } ); bulk.find( { item: null } ).update( { $set: { item: "TBD" } } ); bulk.execute();
집계 파이프라인으로 업데이트하기
업데이트 메서드는 집계 파이프라인을 허용할 수 있습니다. 예를 들어 다음과 같은 용도로 사용할 수 있습니다.
현재 날짜/시간으로 해석되며
$currentDate
업데이트 연산자 표현식과 유사한 동작을 제공할 수 있는 집계 변수NOW
입니다. 집계 변수에 액세스하려면 변수 앞에 이중 달러 기호($$
)를 붙이고 따옴표로 묶습니다.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "P" } ).update( [ { $set: { points: 0, lastModified: "$$NOW" } } ] ); bulk.execute();