PutMongo

文档中心 › 组件索引 › PutMongo

PutMongo Processor

类型全限定名:cn.org.acal.lynxus.processors.mongodb.PutMongo

所属 Bundle:cn.org.acal.lynxus:lynxus-mongodb-nar:2.11.8

描述

将 FlowFile 的内容写入 MongoDB

标签

mongodbinsertupdatewriteput

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Client Service控制器服务 API:
MongoDBClientService
cn.org.acal.lynxus-lynxus-mongodb-client-service-api-nar-2.11.8
如果配置,此属性将使用分配的客户端服务进行连接池。
Mongo Database Name要使用的数据库的名称
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Mongo Collection Name要使用的集合的名称
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Modeinsert
  • insert
  • update
指示处理器是否应插入或更新内容
Upsertfalse
  • true
  • false
当为 true 时,如果没有文档匹配更新查询条件,则插入一个文档;此属性仅在使用更新模式时有效,否则被忽略。
Update Query Key用于构建更新查询条件的一个或多个以逗号分隔的文档键名称,例如 _id
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
更新查询指定用于执行更新/更新插入的完整 MongoDB 查询。注意:如果'Update Query Key'值不为空,则此字段将被忽略。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Update Modedoc
  • With whole document
  • With operators enabled
选择更新模式。您可以提供 JSON 文档作为直接替换,或指定包含更新运算符(如 $set、$unset 和 $inc)的文档。当启用运算符模式时,FlowFile 内容应为运算符部分,例如:{$set:{"key": "value"},$inc:{"count":1234}},更新查询将来自配置的更新查询属性。
Update Methodone
  • Update One — 仅更新与查询匹配的第一个文档。
  • Update Many — 更新与查询匹配的每个文档。
  • 使用 'mongodb.update.mode' FlowFile 属性。 — 使用传入 FlowFile 的 'mongodb.update.mode' 属性的值。可接受的值为 'one' 和 'many'。
用于运行集合更新操作的 MongoDB 方法,例如 updateOne 或 updateMany
Character SetUTF-8数据编码所用的字符集

关系 (Relationships)

名称描述自动终止
failure所有无法写入 MongoDB 的 FlowFile 都会路由到此关系否
success所有写入 MongoDB 的 FlowFile 都会路由到此关系否

写入的 FlowFile 属性

名称描述
mongo.put.update.match.count如果执行更新/更新插入,则结果的匹配计数,否则不设置。
mongo.put.update.modify.count如果执行更新/更新插入,则结果的修改计数,否则不设置。
mongo.put.upsert.id如果执行 upsert,则为“_id”十六进制值,否则不设置。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

输入要求

该组件要求有传入连接。

系统资源考量

资源描述
MEMORYAn instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance.

详细说明

PutMongo

说明

该 Processor 是用于向 MongoDB 集合插入、upsert 和更新数据的通用 Processor。

插入文档

假设每个 FlowFile 只包含一个要插入的 MongoDB 文档,内容必须是 合法的 JSON。不要与 Mongo shell 接受的输入混淆,后者不一定是 合法 JSON。目前不支持批量写入。

更新与 Upsert

更新模式

更新时有两种方式选择写入文档的内容:

  • Whole document - 整个文档被替换为 FlowFile 的内容。
  • With Operators Enabled - 假设 FlowFile 内容中的文档包含 $set 等更新操作符,用于更新特定字段。不会替换整个文档。

有两种更新方式:

  • Update Key - 使用文档中的一个或多个键。
  • Update Query - 使用与文档无关的、完全独立的查询。

Update Key

update key 方式从文档中取键并据此构建查询。如果配置字段中指定了 _id 键,它会尝试把 _id 字段解析为 ObjectID 类型。可以 用逗号分隔指定多个键。该配置字段支持表达式语言,因此可以部分或 完全由 FlowFile Attribute 派生。

Update Query

update query 方式以一个合法的 JSON 文档为值,用它查找一个或多个 要更新的文档。该字段支持表达式语言,因此可以部分或完全由 FlowFile Attribute 派生。例如,可以在 FlowFile 上放一个名为 update_query 的 Attribute,然后在配置字段中指定 ${update_query},这样值就会从 FlowFile 中加载。

Upsert

启用 upsert 模式后,PutMongo 会插入一个匹配搜索条件(无论是用户 提供的查询还是由 update key 构建的查询)的新文档,并赋予 FlowFile 内容中 JSON 文档所指定的属性。请谨慎使用该功能,因为它 可能导致不完整的数据被写入 MongoDB。