You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Umar Hussain (Jira)" <ji...@apache.org> on 2024/01/19 10:06:00 UTC

[jira] [Assigned] (NIFI-12224) PutMongo with operator only updates the first match

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

Umar Hussain reassigned NIFI-12224:
-----------------------------------

    Assignee: Umar Hussain

> PutMongo with operator only updates the first match
> ---------------------------------------------------
>
>                 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
>
> 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)