假设我有这样的架构:
var Person = new Schema({
name: String
});
var Assignment = new Schema({
name: String,
person: ObjectID
});
如果我删除了一个人,仍然会留下引用不存在的人的孤立分配,这会在数据库中造成多余的困惑。
有没有一种简单的方法可以确保当一个人被删除时,对该人的所有相应引用也将被删除?
最佳答案
您可以添加自己的'remove'
Mongoose middleware在 Person
架构上将该人从引用它的所有其他文档中删除。在您的中间件函数中,this
是要删除的 Person
文档。
Person.pre('remove', function(next) {
// Remove all the assignment docs that reference the removed person.
this.model('Assignment').remove({ person: this._id }, next);
});
关于node.js - 在 MongoDB 中删除时自动删除引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904159/