227.6.2.2. save

保存操作相当于一个 upsert (UPdate、inSERT)操作,其中记录将会更新,如果不存在,它将插入所有 atomic 操作。MongoDB 将根据 _id 字段执行匹配。

请注意,如果更新,该对象将被完全取代,不允许使用 MongoDB 的 $mod ifier。因此,如果对象已存在,则要操作对象,则有两个选项:

  1. 执行查询,首先检索整个对象及其所有字段(效率不高效),在 Camel 中更改,然后保存它。
  2. 将更新操作与 $modifiers 搭配使用,这将在服务器端执行更新。您可以启用 upsert 标志,在这种情况下,MongoDB 会将 $modifiers 应用到过滤器查询对象并插入结果。

例如:

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