如何在Apache NiFi中访问MongoDB文档中的字段

时间:2019-11-12 22:02:24

标签: mongodb apache-nifi

在我的NiFi工作流程中,我配置了 getMongo 处理器以及查询属性。

我的查询工作正常,我正在从Ni-Fi的MongoDB中获取响应,如下所示

{ "_id" : { "$oid" : "5dcadc91f027705b1834d6c5" }, "empId" : "333-44-6J", "accountId" : "444434D2", "fulltimeEmployee" : "true", "DateJoined" : "07/14/2016 11:37:42", "Bloddgroup" : "null" }

我想路由 DateJoined,Bloodgroup 等字段进行进一步处理。

一旦我们在 getMongo 处理器中获得响应,我将如何访问这些字段

我厌倦了使用 RouteonAttribute UpdateAttribute 之类的处理器,并尝试使用“ $ {DateJoined}”访问 DateJoined 。但是我得到的是空值。

enter image description here

2 个答案:

答案 0 :(得分:1)

使用EvaluateJsonPath并将动态属性DateJoined设置为$.DateJoined,并将Bloodgroup设置为$.Bloodgroup。这会将这些json属性提取到FlowFile属性中,并允许您像使用表达式语言一样{${Bloodgroup}${DateJoined})来解决它们

答案 1 :(得分:1)

只能使用$ Symbol来访问属性,因为数据库记录不是属性,因此您需要使用Ben提到的 EvaluateJsonPath 处理器,然后使用 $ {DateJoined}获取属性