首页 > 代码库 > schema中字段类型的定义

schema中字段类型的定义

当schema中字段类型为String时,保存的时候如果该字段为Number也可以保存成功,mongoose会自动将其转换为数字字符串。

当schema中字段类型为Number时,保存的时候如果该字段如果是String类型,只要能转换为数字格式的字符串,也能保存成功,比如"20.17",否则会报错

在实例化模型的时候,如果传入的字段值的类型和schema中定义的不一致(上面说的可以自动转换类型的不算),那么在实例化生成的文档对象中不包含该属性。如:

var schema = Schema({
    id:Number,
    no:Number,
})

var Test = mongoose.model(‘test‘,schema)

var doc = new Test({id:10,no:‘s123‘});

console.log(doc) // 打印{_id:xxx,__v:0,id:10} 前面两个字段是mongoose自动生成的

doc.save() //这时候调用save方法会报错

如果稍作修改,比如这样

var doc = new Test({id:10,no:‘123‘});
console.log(doc) // 打印{_id:xxx,__v:0,id:10,no:123}
doc.save() //保存成功

 

schema中字段类型的定义