mongoose – 如何指定和删除依赖关系?

使用MongoDB和Mongoose,如何将对象标记为从属于它们的关系,以便如果父对象被删除,则所有依赖于它的子对象也将被删除。 例如,如果作者被删除,我怎样才能让作者的所有文章自动删除?

var AuthorSchema = new Schema({ created: { type: Date, default: Date.now }, name: { type: String, default: '', trim: true } }); var ArticleSchema = new Schema({ created: { type: Date, default: Date.now }, title: { type: String, default: '', trim: true }, content: { type: String, default: '', trim: true }, author: { type: Schema.ObjectId, ref: 'Author' } }); 

如果你想做一些类似于mysql的“删除级联外键”,如果你删除一个父级,子级会自动删除,那么在纯MongoDB中是不可能的。

为了实现这一点,你必须在你的应用程序逻辑中实现它。 删除作者时,必须根据authorID对文章集合执行另一次删除操作。 不要忘记把这个领域的索引。