当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() //保存成功
时间: 2024-10-07 15:21:56