У меня есть эти коллекции: статьи, избранное и комментарии. Я хочу удалить статью, а вместе с ней удалить ее комментарии и избранное.
Мой код:
//delete comments
await this.commentsService.deleteArticleComments(articleId);
//delete favorites
await this.favoritesService.deleteArticleFavorites(articleId);
//delete article
await this.articlesService.deleteArticle(articleId);
Каждый вызывает метод в службе, который выполняет удаление с Пн goose:
async deleteArticleComments(articleId: string){
return await this.commentModel.deleteMany({articleId}).exec();
}
Лог c работает, но меня беспокоит, что если шаг «Избранное» или «Комментарий» завершится неудачно, статья не будет удалена, а база данных потеряет свою согласованность.
Есть ли способ вызвать эти 3 действия удаления и выполнить все из них сразу? И если есть ошибка, все они должны быть отменены.