34.7.2. 생성/업데이트 작업
34.7.2.1. insert
IN 메시지 본문에서 가져온 MongoDB 컬렉션에 새 오브젝트를 삽입합니다. 형식 변환은 이를 문서
또는 목록으로
전환하려고 시도합니다.
두 가지 모드가 지원됩니다: 단일 삽입 및 여러 삽입. 여러 삽입의 경우 끝점은 모든 형식의 개체 목록, 배열 또는 컬렉션을 예상하거나 - 문서로 변환할 수 있습니다.For multiple insert, the endpoint will expect a List, Array or Collections of any type, as long as they are - or can be converted to - Document
. 예제:
from("direct:insert") .to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
이 작업은 WriteResult를 반환하고 WriteConcern
또는 invokeGetLastError
옵션의 값에 따라 getLastError()
가 이미 호출되었거나 있지 않은 것입니다. 쓰기 작업의 궁극적인 결과에 액세스하려면 WriteResult
에서 getLastError()
또는 getCachedLastError()
를 호출하여 CommandResult
를 검색해야 합니다. 그러면 CommandResult.ok()
, CommandResult.getErrorMessage()
및/또는 CommandResult.getException()
를 호출하여 결과를 확인할 수 있습니다.
새 오브젝트의 _id
는 컬렉션에서 고유해야 합니다. 값을 지정하지 않으면 MongoDB가 자동으로 해당 값을 생성합니다. 하지만 이 값을 지정하고 고유하지 않으면 삽입 작업이 실패합니다. 또한 삽입 작업이 실패하고 Camel에 대해 invokeGetLastError를 활성화하거나 쓰기 결과를 기다리는 WriteConcern을 설정해야 합니다.
이는 구성 요소에 대한 제한이 아니지만 처리량을 높이기 위해 MongoDB에서 작업하는 방법입니다. 사용자 정의 _id
를 사용하는 경우 고유한 애플리케이션 수준에서도 확인해야 합니다.
삽입된 레코드의 OID는 CamelMongoOid
키(MongoDbConstants.OID
상수)의 메시지 헤더에 저장됩니다. 저장된 값은 단일 삽입 또는 java.util.List<
.types.ObjectId입니다.
org.bson.types.ObjectId
>의 경우 org.bson
MongoDB Java Driver 3.x에서 insertOne 및 insertMany 작업 반환 void입니다. Camel 삽입 작업은 삽입된 문서 또는 문서 목록을 반환합니다. 필요한 경우 각 문서를 새 OID에 의해 업데이트 됩니다.