Hi,
I can't seem to figure out the right combo of parameters to get a
document to update in Mongo using the PutMongo processor and the $set
operator.
Try 1:
The incoming flowfile contains the customId: abc
NiFi Processor Properties:
Mode: update
Upsert: false
Update Query Key: No value set
Update Query: {"customId":{$customId}},{$set: {"status":"Stage_2"}}
Update Mode: With operators enabled
This consistently fails, the abbreviated log output:
PutMongo Failed to insert into MongoDB due to
com.mongodb.util.JSONParseException:
abc
...
at com.mongodb.util.JSONParser.parse(JSON.java:230)
...
at org.apache.nifi.processors.mongodb.PutMongo.onTrigger(PutMongo.java:201)
https://github.com/apache/nifi/blob/rel/nifi-1.6.0/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java#L201
It looks like it's trying to parse the incoming flowfile as a JSON document
with the above parameters set.
Try 2:
With that in mind, I changed my input flowfile to be a json object, but I
don't think it should need to be, because I'm using the Update Query with
Operators.
New incoming flow file: {"customId":"abc"}
This allows it to get line 225, before it fails with:
PutMongo Failed to insert into MongoDB due to
java.lang.IllegalArgumentException: Invalid BSON field name customId:
at org.bson.AbstractBsonWriter.writeName(AbstractBsonWriter.java:494)
at org.apache.nifi.processors.mongodb.PutMongo.onTrigger(PutMongo:225)
https://github.com/apache/nifi/blob/rel/nifi-1.6.0/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java#L225
Line 225: //collection.updateOne(query, update, new
UpdateOptions().upsert(upsert));
query = {"customId":{$customId}},{$set: {"status":"Stage_2"}}
update = {"customId":"abc"}
It looks like the 'update' variable, is my incoming flowfile. I'm not sure
why it would be, based on my understanding of the processor properties
works.
If anyone has any insight on how to set this up for using the operators to
update a document, I'd really appreciate the insight. I'm lost in
debugging.
Thanks,
Best,
Ryan