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

Node.js Mongoose Schema使用enum校验时是否区分大小写?

Mongoose enum枚举字段校验的大小写规则
  • Mongoose内置的String类型enum校验默认严格区分大小写,校验逻辑是对传入值和枚举列表做精确等值匹配,不会自动做大小写归一化处理。
  • 你给出的示例中,animal字段允许的枚举值只有全小写的'cat'、'dog',传入全大写的'CAT'时,会被判定为不符合枚举规则,执行save()保存操作时会直接抛出ValidationError校验错误,实例不会被正常存入数据库。

如果业务场景需要支持不区分大小写的枚举匹配,可以弃用内置enum配置,改用自定义校验规则实现,参考代码:

const mySchema = new Schema({
  animal: {
    type: String,
    validate: {
      validator: function(value) {
        // 传入值统一转小写后再和枚举列表匹配
        return ['cat', 'dog'].includes(value.toLowerCase());
      },
      message: 'animal字段取值不在允许范围内'
    }
  }
});

内容的提问来源于stack exchange,提问作者LordZuko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:21:22