如何使用springmongo从嵌套的文档数组中删除元素



我有以下类型的文档来表示Mongo DB中的项目:

{
"_id" : "5f69c22b669f2d3b308ce2e2",
"actions" : [ 
{
"_id" : "1",
...
}, 
{
"_id" :"2",
...
}, 
{
"_id" : "n",
...
},
...
]
}

并且我想通过项目projectId的操作ID来删除指定的操作。

我尝试了以下代码:

mongoOperation.updateMulti(
Query.query(Criteria.where("id").is(projectId)),
new Update().pull("actions", Query.query(Criteria.where("id").in(actionIds))),
Project.class
);

但它不会删除任何内容。

你能帮我吗?

谢谢

我终于找到了如何做到这一点:

DBObject pullUpdate = BasicDBObjectBuilder.start().add(
"id",
BasicDBObjectBuilder.start().add("$in", actionIds).get()
).get();
mongoOperation.updateMulti(
Query.query(Criteria.where("id").is(projectId)),
new Update().pull("actions", pullUpdate),
Project.class
);

最新更新