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

空字符串是否匹配MongoDB必填字段Schema?报错如何解决?

错误原因

你的MongoDB Schema中,demoProperty1字段被设置为type: String且required: true,而MongoDB的默认验证规则会将空字符串""判定为不符合必填要求——这里的必填不仅要求字段存在,还要求它是非空的有效字符串。你创建文档时传入了空字符串,触发了Schema的验证逻辑,因此抛出ValidationError。

解决方法

根据你的业务需求选择以下方案:

  • 允许空字符串的场景:
    修改Schema,要么取消必填限制,要么添加自定义验证器允许空字符串:
    // 方案1:取消必填限制
    const DemoSchema: Schema = new Schema({
      demoProperty1: { type: String }
    });
    
    // 方案2:自定义验证器,允许空字符串但要求字段存在
    const DemoSchema: Schema = new Schema({
      demoProperty1: { 
        type: String, 
        required: true,
        validator: (v) => v !== undefined
      }
    });
    
  • 不允许空字符串的场景:
    创建文档时传入非空的有效字符串,示例:
    const savedDemo = await this.demoModel.create({demoProperty1: "实际业务内容"});
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:55:18