[ 
https://issues.apache.org/jira/browse/NIFI-12224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Handermann resolved NIFI-12224.
-------------------------------------
    Fix Version/s: 2.0.0-M5
       Resolution: Fixed

> PutMongo: Add support for updateMany operation with operators enabled option
> ----------------------------------------------------------------------------
>
>                 Key: NIFI-12224
>                 URL: https://issues.apache.org/jira/browse/NIFI-12224
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.23.2
>            Reporter: Malte
>            Assignee: Umar Hussain
>            Priority: Minor
>             Fix For: 2.0.0-M5
>
>          Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> Problem to solve: In my case, I wanted to add a field to a couple of 
> documents that fullfill a certain condition. The [PutMongo 
> documentation|https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-mongodb-nar/1.23.0/org.apache.nifi.processors.mongodb.PutMongo/additionalDetails.html]
>  states that if you select the "With Operators Enabled" mode, then the 
> "Update Query" property can be used "to find one or more documents to 
> update". But the processor uses the ["updateOne" method of the 
> MongoCollection 
> class|https://github.com/apache/nifi/blob/22ad7d542d627e767f962b13236da90a0d6410f5/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java#L230C21-L230C41],
>  which will only update the first match.
> Proposed solutions:
> 1. Update the documentation to correctly state that only one document (the 
> first match) can be updated using an operator.
> 2. Use the updateMany method of the MongoCollection class.
> 3. Add a property like ["update-mode" from 
> PutMongoRecord|https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-mongodb-nar/1.23.0/org.apache.nifi.processors.mongodb.PutMongoRecord/]
>  to switch between updateOne and updateMany.
> Workaround: Right now I use the RunMongoAggregation and use a $match, 
> $addFields and $merge operation to achieve what I want. But I think the 
> PutMongo processor would be the intuitive way to go.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to