我正在使用Mongoose学习MongoDB,我在面对一个小问题时,为了在删除文档时清理我的集合。
我有3个相关的收藏品。用户,博客文章和评论。
在用户模型和Blogpost模型上我已经设置了这样的预删除功能
用户模型
UserSchema.pre('remove', function(next) {
const Blogposts = mongoose.model('blogpost');
const Comments = mongoose.model('comment');
console.log('pre-remove user');
Promise.all([
Blogposts.remove({_id: { $in: this.blogposts }}),
Comments.remove({user: this._id})
]).then(next());
});
博客文章
BlogPostSchema.pre('remove', function(next) {
const Comments = moongoose.model('comment');
console.log('pre-remove blogpost');
Comments.remove({_id: { $in: this.comments}})
.then(next());
});
当我删除用户时,它会删除与用户关联的博客帖子和评论,但似乎根本没有调用博客文章模型上的预删除功能。
是否有任何想法要删除在级联中删除的博客帖子中的所有评论?