首页 > 解决方案 > _id 属性在模式中间件中未定义

问题描述

我正在删除一个用户并尝试级联删除用户的帖子、每个帖子的评论以及每个已删除评论的回复。

我不断为每个模式的中间件中的 ._id 属性获取“未定义”,因此我无法将它们从数据库中删除。

如何访问 id 属性以删除每个帖子的每个评论?

多谢你们

用户模型中间件

userSchema.pre('remove', async function (next) {
  const user = this

  await Post.deleteMany({ userId: user._id }) // WORKS!

  next()
})

发布模型中间件 - 不触发

postSchema.pre('deleteMany', async function (next) {
  const post = this

  await Comment.deleteMany({ postId: post._id }) // id = undefined

  next()
})

标签: javascriptmongoose

解决方案


推荐阅读