我试图删除mongodb中的孤立文档,这些文档跨越了集合。在集合'values'中,我有这样的文档:
value: { resultId: <ObjectId> ...other data.. }
引用集合“结果”中的文档:
result: { _id: <ObjectId> //the resultId }
许多“结果”文档已被删除,导致孤立的“价值”文档。如何找到所有孤立的文档并将其删除?
rhfm7lfc1#
您需要做的是建立一个聚合管道,使用$lookup操作符获取相应的结果文档,然后在聚合管道中添加一个$match操作符来过滤那些没有相应结果对象的结果文档。
$lookup
$match
db.values.aggregate([ { $lookup: { from: "results", localField: "resultId", foreignField: "id", as: "resultDocument" } }, { $match: { resultDocument: {$size:0} }} ])
这样,您就可以识别孤立文档,并在以后将其删除。
1条答案
按热度按时间rhfm7lfc1#
您需要做的是建立一个聚合管道,使用
$lookup
操作符获取相应的结果文档,然后在聚合管道中添加一个$match
操作符来过滤那些没有相应结果对象的结果文档。这样,您就可以识别孤立文档,并在以后将其删除。