Используйте 'arrayfilters' для обновления подмассива с помощью Jongo - PullRequest
0 голосов
/ 12 июня 2018

Следующий запрос работает в консоли 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

...