使用' arrayfilters'使用Jongo更新子数组

时间:2018-06-12 07:53:41

标签: mongodb jongo

以下查询适用于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': #}]}

有人可以给我正确的语法来使用Jongo使用arrayFilters。我怀疑Jongo是否支持它。

  

我使用的是Jongo:1.3.0和mongo-java-driver:3.7.1

0 个答案:

没有答案