Пн goose удалить все упомянутые комментарии с постом - PullRequest
0 голосов
/ 27 мая 2020

Вот моя схема поста. Которые содержат коллекцию ссылок на комментарии.

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 Ответ

1 голос
/ 27 мая 2020

Здесь я использую deleteMany с оператором $in.

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

await Comment.deleteMany({_id: {$in: deleted.comments}});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...