227.6.4. 대량 쓰기 작업

227.6.4.1. bulkWrite

Camel 2.21로 사용 가능

실행 순서를 위해 제어를 사용하여 대량으로 쓰기 작업을 수행합니다. 삽입, 업데이트 및 삭제 작업에 대한 명령이 포함된 IN 메시지 본문으로 List<WriteModel<DBObject >>가 필요합니다.

다음 예제는 새로운 과학자 "Pierre Curie"를 삽입하고, "Cierre Curie" 필드의 값을 "Marie Curie"로 설정하고 id "3"으로 레코드를 삭제하여 id "5"로 레코드를 업데이트합니다.

// route: from("direct:bulkWrite").to("mongodb:myDb?database=science&collection=notableScientists&operation=bulkWrite");
List<WriteModel<DBObject>> bulkOperations = Arrays.asList(
            new InsertOneModel<>(new BasicDBObject("scientist", "Pierre Curie")),
            new UpdateOneModel<>(new BasicDBObject("_id", "5"),
                                 new BasicDBObject("$set", new BasicDBObject("scientist", "Marie Curie"))),
            new DeleteOneModel<>(new BasicDBObject("_id", "3")));

BulkWriteResult result = template.requestBody("direct:bulkWrite", bulkOperations, BulkWriteResult.class);

기본적으로 작업은 순서대로 실행되며 목록의 나머지 쓰기 작업을 처리하지 않고 첫 번째 쓰기 오류에서 중단됩니다. MongoDB에서 목록의 남은 쓰기 작업을 계속 처리하도록 지시하려면 CamelMongoDbBulkOrdered IN 메시지 헤더를 false 로 설정합니다. 순서가 지정되지 않은 작업은 병렬로 실행되며 이 동작은 보장되지 않습니다.

헤더 키빠른 일정description (MongoDB API doc에서 추출)예상 유형

CamelMongoDbBulkOrdered

MongoDbConstants.BULK_ORDERED

순서가 있거나 순서가 지정되지 않은 작업 실행을 수행합니다. 기본값은 true입니다.

부울/Boolean