🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[toc] ## pre 集合、Schema、模型 都是指同一个东东 ## Schema(概要) mongoDB中没有`表结构`,这意着每一条记录 (文档模型),都可以是完全不一样的数据结构 So,为了解决这个问题,**mongoose** 帮我们实现了一个名为`Schema`的东东 使用Schema,能帮助我们规范一个`collection` 里的 文档。 ``` let UserSchema = new mongoose.Schema({ name:String ,age:Number } //如果你指定Schema的时候指定了collection的值,那么会使用这个值作为集合的名字 //,否则就是模型名转小写再转复数 User-user-users ,{collection:'user'} ); ``` - 如果对象中的字段在Schema中没有定义,则会被忽略掉 - 如果说对象中的字段少于Schema中定义的字段, 且少的那部分字段不是必须的,那么缺少的字段不会被保存(缺省,保存的JSON中不会存在这些个字段) - 如果提供的字段类型和Schema中定义的不匹配,则会报错 定义好一个`Schema`后,**并不**会在数据库中立马创建一个collection,它并没有操作数据库的能力,只是规范了存放的文档的数据类型 ## 模型 这个时候我们需要通过, `createConnection`返回的链接对象下的`.model`方法来创建一个**模型**,并将刚才定义的Schema骨架**注册***进去。 ``` let User = connection.model('User', UserSchema); ```