MongoDB:删除';孤儿';文件?

MongoDB:删除';孤儿';文件?,mongodb,join,orphan,Mongodb,Join,Orphan,我正在尝试删除mongodb中的孤立文档,它跨集合。 在“值”集合中,我有如下文档: value: { resultId: <ObjectId> ...other data.. } 值: { 结果: …其他数据。。 } “结果”集合中的哪些参考文档: result: { _id: <ObjectId> //the resultId } 结果: { _id://resultId } 许多“结果”文档已被删除,导致孤立的“价值”文档。如何查找所有孤立

我正在尝试删除mongodb中的孤立文档,它跨集合。 在“值”集合中,我有如下文档:

value:
{
   resultId: <ObjectId>
   ...other data..
}
值:
{
结果:
…其他数据。。
}
“结果”集合中的哪些参考文档:

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

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

您需要做的是建立一个聚合管道,并使用操作符获取相应的结果文档。然后,将
$match
操作符添加到聚合管道中,以过滤那些没有相应结果对象的对象

db.values.aggregate([
  {
    $lookup: {
      from: "results",
      localField: "resultId",
      foreignField: "id",
      as: "resultDocument"
    }
   },
   { $match: { resultDocument: null }}
])
这样,您就可以识别孤立文档,并可以在以后删除它们