如何删除存储在mongodb中的具有父引用的子树
我有一个集合,它将树数据存储为带有父引用的mongo db文档,如中所述 我的问题是,如何使用mongodb查询删除节点(文档)以及该节点下的所有文档(子节点的子节点等)。我不想解析和获取所有ID并删除它们。是否有任何mongo mongo查询可以帮助我删除以父引用作为起始参数的整个子树 提前谢谢如何删除存储在mongodb中的具有父引用的子树,mongodb,mongodb-query,spring-data-mongodb,Mongodb,Mongodb Query,Spring Data Mongodb,我有一个集合,它将树数据存储为带有父引用的mongo db文档,如中所述 我的问题是,如何使用mongodb查询删除节点(文档)以及该节点下的所有文档(子节点的子节点等)。我不想解析和获取所有ID并删除它们。是否有任何mongo mongo查询可以帮助我删除以父引用作为起始参数的整个子树 提前谢谢 干杯很难想象你在想什么,但是你可以运行self$graphLookup,并获得基于该层次结构的文档列表 你可以查一个 管道是 db.collection.aggregate({ $match: {
干杯很难想象你在想什么,但是你可以运行self$graphLookup,并获得基于该层次结构的文档列表 你可以查一个 管道是
db.collection.aggregate({
$match: {
_id: "Books"
}
},
{
"$graphLookup": {
"from": "collection",
"startWith": "$_id",
"connectFromField": "_id",
"connectToField": "parent",
"as": "ids"
}
},
{
$project: {
"ids": {
$map: {
input: "$ids",
as: "id",
in: "$$id._id"
}
},
"_id": 0
}
})
那么你只需要这样的东西:
db.coll.deleteMany({"_id":{$in:[listHere]}})
在该列表中,您需要添加父节点。如果答案有帮助,请至少提供一些反馈。我正在休假,因此无法测试它。这很有帮助。谢谢!