You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose的单个find方法级别设置strictQuery为false

Mongoose 6 单查询绕过strictQuery限制的方法

你写的传参方式无法生效,Mongoose确实支持单条查询单独配置strictQuery规则,不需要修改Schema全局配置,但配置要放在正确的参数位置。

  • 写法问题说明:find()方法的第二个参数是字段投影配置,作用是指定查询结果要返回/排除哪些字段,你把strictQuery: false放在这个位置,会被Mongoose当成投影规则解析,完全不会触发查询配置逻辑,自然没法绕过字段检查。
  • 两种可用的单查询配置方式:
    1. 链式调用setOptions()挂载配置,配置仅作用于当前查询:
    const archivedDocs = await myModel.find({ _archived: true }).setOptions({ strictQuery: false })
    
    1. 把配置传入find()的第三个参数(查询专属配置位),注意第二个参数传null代表不限制返回字段:
    const archivedDocs = await myModel.find({ _archived: true }, null, { strictQuery: false })
    

两种写法效果完全一致,都不会改动Schema的全局strictQuery默认值,执行查询时会保留你传入的、未在Schema中定义的_archived查询条件,正常命中数据库里的对应文档。

内容的提问来源于stack exchange,提问作者Islam Y-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:39:19