PutMongo Processor
描述
将 FlowFile 的内容写入 MongoDB
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Client Service | | 控制器服务 API:MongoDBClientServicecn.org.acal.lynxus-lynxus-mongodb-client-service-api-nar-2.11.8 | 如果配置,此属性将使用分配的客户端服务进行连接池。 |
| Mongo Database Name | | 要使用的数据库的名称 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Mongo Collection Name | | 要使用的集合的名称 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Mode | insert |
| 指示处理器是否应插入或更新内容 |
| Upsert | false |
| 当为 true 时,如果没有文档匹配更新查询条件,则插入一个文档;此属性仅在使用更新模式时有效,否则被忽略。 |
| Update Query Key | | 用于构建更新查询条件的一个或多个以逗号分隔的文档键名称,例如 _id 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| 更新查询 | | 指定用于执行更新/更新插入的完整 MongoDB 查询。注意:如果'Update Query Key'值不为空,则此字段将被忽略。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Update Mode | doc |
| 选择更新模式。您可以提供 JSON 文档作为直接替换,或指定包含更新运算符(如 $set、$unset 和 $inc)的文档。当启用运算符模式时,FlowFile 内容应为运算符部分,例如:{$set:{"key": "value"},$inc:{"count":1234}},更新查询将来自配置的更新查询属性。 |
| Update Method | one |
| 用于运行集合更新操作的 MongoDB 方法,例如 updateOne 或 updateMany |
| Character Set | UTF-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)
该组件不受限。
输入要求
该组件要求有传入连接。
系统资源考量
| 资源 | 描述 |
|---|---|
| MEMORY | An 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。