#javascript #mongoose
Вопрос:
Я удаляю пользователя и пытаюсь каскадно удалить сообщения пользователя, комментарии к каждому сообщению и ответы на каждый удаленный комментарий.
Я продолжаю получать «неопределенные» свойства ._id в промежуточном программном обеспечении каждой схемы, поэтому я не могу удалить их из базы данных.
Как получить доступ к свойству id, чтобы удалить каждый комментарий для каждого поста?
Спасибо, ребята
ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЬСКИХ МОДЕЛЕЙ
userSchema.pre('remove', async function (next) {
const user = this
await Post.deleteMany({ userId: user._id }) // WORKS!
next()
})
ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ POST — МОДЕЛИ- НЕ ЗАПУСКАЕТ
postSchema.pre('deleteMany', async function (next) {
const post = this
await Comment.deleteMany({ postId: post._id }) // id = undefined
next()
})
Комментарии:
1.
await Post.remove({ userId: user._id })
.2. Я добавил ваш код и обновил приведенный выше код, но это не приведет к тому, что мое промежуточное программное обеспечение postSchema удалит все комментарии для каждого поста. Однако это приведет к удалению записей. Почему он не удалит все комментарии?