gpt4 book ai didi

mongodb - 从另一个集合中删除 dbref 元素

转载 作者:可可西里 更新时间:2023-11-01 10:52:14 25 4
gpt4 key购买 nike

我有一个包含元素的收集 session

{
"_id" : NumberLong(1),
"_class" : "cws.CWSession",
"title" : "java ",
"description" : "apprendre à programmer en java"
}

{
"_id" : NumberLong(2),
"_class" : "cws.CWSession",
"title" : "Git",
"description" : "Formation Git"
}

我还有另一个包含 CWSession 的 dbRed 的集合:

{
"_id" : NumberLong(2),
"_class" : "cws.CollaborativeWs",
"title" : "AngularJS",
"description" : "AngularJS",
"cws" : [
{
"$ref" : "cwsession",
"$id" : NumberLong(1)
},
{
"$ref" : "cwsession",
"$id" : NumberLong(2)
}
]
}

{
"_id" : NumberLong(3),
"_class" : "cws.CollaborativeWs",
"title" : "Java",
"description" : "principes java ",
"cws" : [
{
"$ref" : "cwsession",
"$id" : NumberLong(3)
}
]
}

我使用mongo模板删除 session

mongoTemplate.remove(new Query(Criteria.where("_id").is(id)), CWSession.class);

它工作正常, session 在第一个集合中被删除但仍在第二个集合中,你能告诉我我可以用什么来删除第二个集合中的引用吗?提前谢谢你。

public void deleteSessionfromCW(String idCW, String idS){
Query query = new Query(where("_id").is(idCW).and("cws.id").is(id));
Update update = new Update().pull("cws", new BasicDBObject("id", "1"));
mongoTemplate.updateFirst(query, update, Item.class);
}

最佳答案

我遇到了类似的问题,在找到答案之前遇到了您未回答的问题。我将根据为 future 的 Google 员工找到的答案发布解决方案 Other Question

mongoTemplate.remove(new Query(Criteria.where("id").is(id)), CWSession.class);
mongoTemplate.remove(new Query(Criteria.where("cws.$id").is(new ObjectId(id)), CollaborativeWs.class);

关于mongodb - 从另一个集合中删除 dbref 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com