Следующий запрос работает в консоли MongoDB.
db.getCollection('safetyPlan').update({"user": "username"}, {"$set": {"stepItems.$[i].items.deleteFl": true}}, {"arrayFilters": [{"i.items._id": new ObjectId("3w43esrw3er2343rsfsdf333")}]});
Тот же запрос, написанный с использованием Jongo:
collection.update("{user: #}", user)
.with("{'$set': {'stepItems.$[i].items.deleteFl': true}}, {'arrayFilters': [{'i.items"
+ "._id': #}]}", user, new ObjectId(planId));
Когда я пытаюсь выполнить код Java, он выдает:
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Too many parameters passed to query: {'$set': {'stepItems.$[i].items.deleteFl': true}}, {arrayFilters: [{'i.items._id': #}]}
Может кто-нибудь дать мне правильный синтаксис для использования arrayFilters с использованием Jongo.Я сомневаюсь, что Jongo поддерживает это.
Я использую Jongo: 1.3.0 и mongo-java-driver: 3.7.1