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()
을 참조하세요.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
예시
다음 예시에서는 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();
다음도 참조하세요.