猫鼬级联'删除'中间件

时间:2017-07-27 07:40:57

标签: javascript node.js mongoose

我正在使用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());
});

当我删除用户时,它会删除与用户关联的博客帖子和评论,但似乎根本没有调用博客文章模型上的预删除功能。

是否有任何想法要删除在级联中删除的博客帖子中的所有评论?

0 个答案:

没有答案