227.6.2. 创建/更新操作


227.6.2.1. insert

将新对象插入到 MongoDB 集合中,从 IN 消息正文获取。尝试键入转换,把它换为 DBObject 或一个列表。
支持两种模式: 插入和多个插入。对于多个插入,端点将期望一种任何类型的对象列表、数组或集合,只要它们为 - 或可以转换为 - DBObject。所有对象都被插入一次。端点将根据输入智能地决定调用(单或多个插入)哪些后端操作。

例如:

from("direct:insert")
    .to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
Copy to Clipboard Toggle word wrap

该操作将返回一个 WriteResult,具体取决于 WriteConcern 或 calls GetLastError 选项的值,getLastError () 已被调用。如果想要访问写操作的最终结果,需要通过调用 WriteResultgetLastError ()getCachedLastError () 来检索 CommandResult。然后,您可以通过调用 CommandResult.ok ()、命令 Result. getErrorMessage () 和/或 CommandResult.getException () 来验证结果。

请注意,新对象的 _id 在集合中必须是唯一的。如果没有指定值,MongoDB 会自动为您生成一个。但是,如果您确实指定了它且不是唯一的,插入操作将失败(对于 Camel 而言,您需要启用 调用GetLastError 或设置等待写入结果的 WriteConcern)。

这不是组件的限制,但它是 MongoDB 中如何工作才能实现更高吞吐量。如果您使用的是自定义 _id,您应该确保应用程序级别唯一(这也是一种好的做法)。

自 Camel 2.15 开始,插入记录的 OID 存储在 CamelMongoOid 键下的消息标头中(MongoDbConstants.OID constant)。存储的值是 org.bson.types.ObjectId,用于单个插入或 java.util.List<org.bson.types.ObjectId&gt; (如果插入多个记录)。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat