MongoDB:删除“孤立”文档?

yfwxisqw  于 2022-12-29  发布在  Go
关注(0)|答案(1)|浏览(93)

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

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

引用集合“结果”中的文档:

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

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

rhfm7lfc

rhfm7lfc1#

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

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

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

相关问题