228.6.2.2. save

save 작업은 upsert (UPdate, inSERT) 작업과 동등하며 레코드가 업데이트될 경우 레코드가 없으면 하나의 원자성 작업에서 모두 삽입됩니다. MongoDB는 _id 필드를 기반으로 일치하는 작업을 수행합니다.

업데이트의 경우 객체가 완전히 교체되고 MongoDB의 $modifier 는 허용되지 않습니다. 따라서 이미 존재하는 경우 오브젝트를 조작하려면 다음 두 가지 옵션이 있습니다.

  1. 쿼리를 수행하여 모든 필드(비효율이 아님)를 사용하여 전체 오브젝트를 먼저 검색하고 Camel 내에서 변경한 다음 저장합니다.
  2. 대신 서버 측에서 업데이트를 실행할 $modifiers 와 함께 업데이트 작업을 사용합니다. upsert 플래그를 활성화할 수 있습니다. 이 경우 삽입이 필요한 경우 MongoDB는 $modifiers를 필터 쿼리 오브젝트에 적용하고 결과를 삽입합니다.

예를 들면 다음과 같습니다.

from("direct:insert")
    .to("mongodb:myDb?database=flights&collection=tickets&operation=save");