MongoDB:删除'orphaned'文档?



我正在尝试删除mongodb中的孤立文档,这些文档跨越了集合。在集合"values"中,我有这样的文档:

value:
{
resultId: <ObjectId>
...other data..
}

集合"结果"中的哪些参考文档:

result:
{
_id: <ObjectId> //the resultId
}

许多"结果"文档已被删除,导致孤立的"值"文档。如何查找所有孤儿并将其删除?

您要做的是建立一个聚合管道,并使用$lookup运算符来获取相应的结果文档。然后,将$match运算符添加到聚合管道中,以筛选那些没有相应结果对象的运算符。

db.values.aggregate([
{
$lookup: {
from: "results",
localField: "resultId",
foreignField: "id",
as: "resultDocument"
}
},
{ $match: { resultDocument: {$size:0} }}
])

这样,您就可以识别孤立文档,然后可以将其删除。

相关内容

  • 没有找到相关文章

最新更新