Eri*_*ima 5 middleware cascade mongoose typescript
谁能帮我解决这个问题吗?
我使用 Typescript 和 mongoose v5.7.6 创建一个 API,该 API 管理用户和车辆,以便车辆具有用户 ID,并且用户具有车辆 ID 列表(mongoose 填充用法)。
我的问题是删除车辆,因为我需要在用户的车辆列表中删除它(级联效应)。我正在使用车辆模型的findByIdAndDelete方法,并为findOneAndDelete创建了预中间件作为文档(https://mongoosejs.com/docs/api/model.html#model_Model.findByIdAndDelete)。
这个findByIdAndDelete方法成功触发了findOneAndDelete中间件,但是如何让正在删除的文档获取其属性作为用户ID呢?
如果我使用删除中间件,我可以访问this元素,但是使用findOneAndDelete中间件,这与 Typescript 上的文档不匹配。
我怎么解决这个问题?
小智 2
根据mongoose文档,findOneAndDelete是一个查询中间件,查询中间件中的这个关键字指的是查询,而不是文档。
如果您只需要相关文档的 ID,那么您可以使用this.getQuery()._id.
但是,如果您需要的信息多于查询中可用的信息,那么您必须使用当前查询在数据库中查询完整文档,如下所示const document = await Model.find(this.getQuery())。
文档变量现在将包含相关的完整文档。
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |