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