Based on your schema, when authority or code are not available in the flowfile content the record is invalid.
On Fri, May 25, 2018 at 8:30 AM Thomas P. <[email protected]> wrote: > in the json example from my first post the field "authority" is set and in > this case I could use /authority > but when this field is not available in the content? > > { > "code": "A1234", > > "descriptions": [ > { > "language": "EN", > "description": "Nifi rocks!" > } > ] > } > > On 25 May 2018 at 14:13, Mike Thomsen <[email protected]> wrote: > >> /${authority} will yield a record path of /MyAuthority, but there is no >> "MyAuthority" in your flowfile. >> >> /authority, however, will do a lookup on the record and should find the >> value MyAuthority and set a map of { authority => MyAuthority } for the >> lookup service. >> >> On Fri, May 25, 2018 at 8:02 AM Thomas P. <[email protected]> >> wrote: >> >>> authority is an existing attribute on the flowfile. In the content >>> itself this field is not available thats why I want to use the attributes >>> value for querying. >>> [image: nifi_attribute.png] >>> >>> >>> On 25 May 2018 at 13:40, Pierre Villard <[email protected]> >>> wrote: >>> >>>> Hi, >>>> >>>> Is 'authority' an existing attribute in the incoming flow files or is >>>> it only an information available in the content of the flow file ? >>>> >>>> Pierre >>>> >>>> 2018-05-25 13:07 GMT+02:00 Thomas P. <[email protected]>: >>>> >>>>> Hello community, >>>>> >>>>> I am trying to query a MongoDB using LookupRecord which works fine >>>>> when I read the values directly from the json flow file. >>>>> But when I try to query the MongoService using an attribute, I don't >>>>> find the expected document. >>>>> >>>>> Here is my nifi 1.6 setup: >>>>> >>>>> json flow file: >>>>> { >>>>> "code": "A1234", >>>>> "authority": "MyAuthority", >>>>> "descriptions": [ >>>>> { >>>>> "language": "EN", >>>>> "description": "Nifi rocks!" >>>>> } >>>>> ] >>>>> } >>>>> >>>>> avro schema: >>>>> { >>>>> "type" : "record", >>>>> "name" : "MyClass", >>>>> "namespace" : "com.test.avro", >>>>> "fields" : [ { >>>>> "name" : "code", >>>>> "type" : "string" >>>>> }, { >>>>> "name" : "authority", >>>>> "type" : "string" >>>>> }, { >>>>> "name" : "descriptions", >>>>> "type" : { >>>>> "type" : "array", >>>>> "items" : { >>>>> "type" : "record", >>>>> "name" : "descriptions", >>>>> "fields" : [ { >>>>> "name" : "language", >>>>> "type" : "string" >>>>> }, { >>>>> "name" : "description", >>>>> "type" : "string" >>>>> } ] >>>>> } >>>>> } >>>>> } ] >>>>> } >>>>> >>>>> two documents in mongo: >>>>> { >>>>> "_id" : ObjectId("5b07db234fad446628118dde"), >>>>> "code" : "A1234", >>>>> "authority" : "MyAuthority", >>>>> "descriptions" : [ >>>>> { >>>>> "language" : "EN", >>>>> "description" : "Nifi rocks!" >>>>> } >>>>> ] >>>>> } >>>>> >>>>> { >>>>> "_id" : ObjectId("5b07db374fad446628118e10"), >>>>> "code" : "A1234", >>>>> "authority" : "AnotherAuthority", >>>>> "descriptions" : [ >>>>> { >>>>> "language" : "EN", >>>>> "description" : "Nifi still rocks!" >>>>> } >>>>> ] >>>>> } >>>>> >>>>> >>>>> [image: nifi_lookuprecord_success.png] >>>>> >>>>> >>>>> >>>>> Now I try to query MongoDB using a value from an attribute but it >>>>> never matches. >>>>> The attribute 'authority' is set via UpdateAttribute and contains >>>>> value "MyAuthority". >>>>> >>>>> [image: nifi_lookuprecord_unmatched.png] >>>>> >>>>> >>>>> How can I query my document using attribute? >>>>> >>>>> >>>>> Thomas >>>>> >>>>> >>>> >>>> >>> >
