227.6.2.2. save
save 操作等同于一个 upsert (UPdate、inSERT)操作,其中将会更新记录,如果不存在,则会插入一个 atomic 操作。MongoDB 将根据 _id 字段执行匹配。
请注意,如果更新,对象会被完全替换,且不允许使用 MongoDB 的 $mod ifier。因此,如果您要操作对象已存在,有两个选项:
- 执行查询以首先与所有对象一同检索整个对象(可能并不有效),在 Camel 内进行更改,然后保存它。
- 使用 $modifiers 的更新操作,其将在服务器端执行更新。您可以启用 upsert 标志。在这种情况下,MongoDB 将 $modifiers 应用到过滤器查询对象并插入结果。
例如:
from("direct:insert") .to("mongodb:myDb?database=flights&collection=tickets&operation=save");