我需要帮助。我有一个特定的情况,我需要在查找查询发生之前填充我的Mongoose集合。
原因是,我需要将用户输入的过滤后的参数应用于来自其他集合的总体参考。
问题:我正在尝试使用预挂钩,因此我可以在查找查询在“SampleSchema”上触发之前填充所需的路径。如果我尝试将过滤器应用于SampleSchema而不预先填充架构,则查找无法正确过滤结果并且错误输出。
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')
}
我该怎么做?
谢谢
猫鼬没有预先找到钩子。你只能得到validate
,save
,remove
。你可以阅读更多:https://mongoosejs.com/docs/middleware.html