假设我们按照MongoDB 官方文档的建议使用引用建模典型的一对多关系:
var User = mongoose.Schema({
});
var Group = mongoose.Schema({
user: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}]
});
我们还假设我关心用户出现在组中的顺序,所以数组是必要的。
$pull
现在,让我们假设用户已被删除——并且由于某种原因没有维护组。如果您使用 Mongoose ,populate
一切看起来都很好,但垃圾仍然存在于数组中。
有没有办法识别孤立的 refs 并删除它们?甚至可能是自动的——类似于CASCADE
关系世界中的情况?在 Mongo/Mongoose 中保持参照完整性的最佳方法是什么?最后,什么是最有效的?