删除一个集合中链接到mongodb中其他集合的条目

删除一个集合中链接到mongodb中其他集合的条目,mongodb,mongodb-query,Mongodb,Mongodb Query,我有两个收藏:相册和图片 db.albums.findOne().pretty() { “_id”:67, “图像”:[ 52901, 57320, 96342, 99705 ] } 对于图像: db.images.findOne().pretty() { “_id”:99705, “高度”:480, “宽度”:640, “标签”:[“狗”、“小猫”、“工作”] } 每个图像都应该在相册中。图像id显示在相册集合中,如示例所示。但也有一些图像没有相册。我想单独删除这些图像。有人能帮我怎么做

我有两个收藏:相册和图片

db.albums.findOne().pretty()
{
“_id”:67,
“图像”:[
52901,
57320,
96342,
99705
]
}
对于图像:

db.images.findOne().pretty()
{ 
“_id”:99705,
“高度”:480,
“宽度”:640,
“标签”:[“狗”、“小猫”、“工作”]
}
每个图像都应该在相册中。图像id显示在相册集合中,如示例所示。但也有一些图像没有相册。我想单独删除这些图像。有人能帮我怎么做吗

用它来计算
相册
收藏中的所有
不同的
图像
,如下所示:

var allDistinctImagesFromAlbums = db.albums.distinct("images")
db.images.remove({"_id":{"$nin":allDistinctImagesFromAlbums}})
因此,
alldifferentimagesfromalbums
包含所有
图像的数组列表
[5290157320364299705]

现在使用上面的变量来收集
图像
\u id
$nin
上面的数组,如下所示:

var allDistinctImagesFromAlbums = db.albums.distinct("images")
db.images.remove({"_id":{"$nin":allDistinctImagesFromAlbums}})
上面的查询将删除
相册中未引用的所有图像文档