猫鼬中间件钩子"pre"查找问题



我需要帮助。我有一个特定的情况,在find查询发生之前,我需要填充Mongoose集合。

原因是,我需要将用户输入的过滤参数应用于其他集合的population ref。

问题:我正在尝试使用预挂钩,以便在find查询在"SampleSchema"上启动之前填充所需的路径。如果我试图在没有预先填充模式的情况下将过滤器应用于SampleSchema,则find无法正确地过滤结果,并且会出错。

ERROR: { CastError: Cast to ObjectId failed for value "Foo" at path "program" for model "Sample" ...}

因此,我们无法正确地让预查找中间件挂钩正常工作。

SampleSchema.pre('find', function() {
console.log('HELLO I FIRED FIND PRE HOOK');
this.populate('program history type status')
}

我该怎么做?

谢谢

猫鼬中没有预先找到的钩子。你只得到validatesaveremove。您可以在以下网站上阅读更多信息:https://mongoosejs.com/docs/middleware.html

最新更新