Use 'arrayfilters' to update the sub array using Jongo

262 Views Asked by At

The following query works in the MongoDB console.

db.getCollection('safetyPlan').update({"user": "username"}, {"$set": {"stepItems.$[i].items.deleteFl": true}}, {"arrayFilters": [{"i.items._id": new ObjectId("3w43esrw3er2343rsfsdf333")}]});

The same query written using Jongo:

collection.update("{user: #}", user)
                                .with("{'$set': {'stepItems.$[i].items.deleteFl': true}}, {'arrayFilters': [{'i.items"
                                        + "._id': #}]}", user, new ObjectId(planId));

When I try to execute the Java code, it throws:

java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Too many parameters passed to query: {'$set': {'stepItems.$[i].items.deleteFl': true}}, {arrayFilters: [{'i.items._id': #}]}

Can someone give me the correct syntax to use arrayFilters using Jongo. I doubt if Jongo supports it.

I'm using Jongo: 1.3.0 and mongo-java-driver: 3.7.1

0

There are 0 best solutions below