218.5.2.2. save
save 操作は upsert (UPdate, inSERT)操作と同等で、レコードが更新され、存在しない場合は 1 つの atomic 操作にすべて挿入されます。MongoDB は _id
フィールドに基づいて一致を実行します。
更新の場合、オブジェクトは完全に置き換えられ、MongoDB の $modifiers の 使用が許可されないことに注意してください。したがって、オブジェクトがすでに存在する場合は、2 つのオプションがあります。
- クエリーを実行して、オブジェクト全体とそのすべてのフィールド(効率的ではない)をすべて先に取得し、Camel 内で変更してから保存します。
- $modifiers で update 操作を使用します。これにより、代わりにサーバー側で更新が実行されます。upsert フラグを有効にすることができます。この場合、挿入が必要な場合、MongoDB は $modifiers をフィルタークエリーオブジェクトに適用し、結果を挿入します。
保存されるドキュメントに _id
属性が含まれていない場合、操作は挿入され、新しい _id が作成される新しい _id
は CamelMongoOid
ヘッダーに配置されます。
以下に例を示します。
from("direct:insert") .to("mongodb3:myDb?database=flights&collection=tickets&operation=save");