zoukankan      html  css  js  c++  java
  • 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中字段的类型为数组,那么实例化的时候不管有没有传入该字段,这个字段都会生成,如果该数组字段是必填的,那么保存的时候必须有这个字段,且不能是空数组

    /**
    * schema中未定义的字段能被添加到数据库吗 //经验证不会保存到数据库
    * 保存的时候如果字段值的类型和schema中定义的该字段类型不一样会保存成功吗 //不会
    * 保存的时候如果缺少一个schema中的字段会保存成功吗 //如果该属性不是必填的,那么文档仍然会成功保存,只是不会存储schema中缺乏的字段
    */

  • 相关阅读:
    算法练习--ABCD*E=DCBA
    Android实现炫酷SVG动画效果
    swift -NavigationController,代理传值
    交换机的原理及其配置(一)
    NOI2015 题解
    实现存储过程详解
    数据流图(DFD)画法
    SQL SERVER 常用字符类型的区别
    数据库常见面试题集锦,数据库面试题,数据库练习题
    Django自定义模型(model)中的字段标签
  • 原文地址:https://www.cnblogs.com/toward-the-sun/p/6655873.html
Copyright © 2011-2022 走看看