Mongoosejs中间件挂钩“预先”找到问题

问题描述 投票:0回答:1

我需要帮助。我有一个特定的情况,我需要在查找查询发生之前填充我的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')
}

我该怎么做?

谢谢

javascript node.js mongodb mongoose middleware
1个回答
0
投票

猫鼬没有预先找到钩子。你只能得到validatesaveremove。你可以阅读更多:https://mongoosejs.com/docs/middleware.html

© www.soinside.com 2019 - 2024. All rights reserved.