如何确保Mongoose架构结构

时间:2013-12-10 14:59:24

标签: mongoose

使用Mongoose,我们可以确保叶子路径属于某种类型:new Schema({name: String})user.name = {}将无法通过验证。好。

但是现在我说我将架构更改为new Schema({name: {first:String, last:String}})。运行user.name="Tyler";user.save()验证就好了。似乎模式完整性验证仅适用于叶子路径,而不适用于根/中间路径(也就是说,不适用于模式结构

有办法在这里触发验证错误吗?

1 个答案:

答案 0 :(得分:2)

Mongoose还支持除叶子类型之外的更多模式验证,详情请参见here

  

Mongoose有几个内置的验证器。

     
      
  • 所有SchemaTypes都有内置的必需验证器
  •   
  • 数字有最小和最大验证者
  •   
  • 字符串包含枚举和匹配验证器
  •   

即所需的验证器可用于解决问题中描述的问题:

new Schema({
    name: {
        first: {
            type: String,
            required: true
        } , 
        last: {
            type: String,
            required:true
        }
     }
})

如果内置验证不够,那么也可以编写自定义验证器,例如使用mongoose-validator