问题描述
我有以下类型的文档代表 Mongo DB 中的项目:
{
"_id" : "5f69c22b669f2d3b308ce2e2","actions" : [
{
"_id" : "1",...
},{
"_id" :"2",{
"_id" : "n",...
]
}
并且我想通过他们的 actionIds 为项目 projectId 删除指定的操作。
我尝试了下面的代码:
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
);