猫鼬删除所有引用的评论与帖子

时间:2020-05-27 10:01:12

标签: node.js mongoose

这是我的帖子架构。其中包含参考注释的集合。

const postSchema = new mongoose.Schema({
    title: String,
    content: String,
    comments: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Comment"
    }]
});
const Post = mongoose.model("Post", postSchema);

这是我的评论架构。

const commentSchema = new mongoose.Schema({
    text: String
});
const Comment = mongoose.model("Comment", commentSchema);

这是我删除帖子的代码。

Post.findByIdAndDelete(req.params.id, err => {
    if (!err) {
        res.redirect("/posts");
    } else {
        console.log(err);
        res.redirect("back");
    }
});

现在,我想删除所有引用此帖子的评论。现在我该怎么办。

1 个答案:

答案 0 :(得分:1)

在这里,我将deleteMany$in运算符一起使用。

const deleted = await Post.findByIdAndDelete(req.params.id);

await Comment.deleteMany({_id: {$in: deleted.comments}});