【Node.js】mongoose教程03--Schema与Model

文章目录
  1. 1. 理解Schema
  2. 2. Schema的定义
  3. 3. 创建Model
  4. 4. 创建数据实例
  5. 5. Model实例方法
  6. 6. Model静态方法
  7. 7. 相关链接

GitHub源码链接:sodino#MongoDemo


理解Schema

传统的MySQL、Oracle等关系型数据库中,在存储数据之前,开发者必须道德为数据定义数据表,并且为该数据表定义一些字段,从而使数据模型得到实现。
可以说,在关系型数据库中,一个数据表就是一个数据架构。它预先定义了开发者可以使用的数据模型。

但MongoDB是面向文档的数据库,不是关系型数据库。被认为是无数据架构的。

然而数据架构仍然是有用的,可以使人以易读的方式来描述数据库中的数据内容,并为这些数据定义一些规则。
如Mongoose可以对Number的数据设置最小值min与最大值max;可以对Date设置默认值为当前时间;可以对String设置存储为小写模式并去除头尾空白字符。

而以上所说的功能都在Mongoose的设计理念中,都由Schema的定义来实现。


Schema的定义

在Sodino的MongoDemo工程中,需要对手机进行数据架构的定义。具体实现如下:

       
       
       
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
       
       
       
// 准备工作
var mongoose = require( 'mongoose');
var Schema = mongoose.Schema;
// 开始定义Schema
var phoneSchema = new Schema({
device : String, //设备名称
isSmart : Boolean, //是否为智能手机
releaseTime : Date, //发布时间
price : Number, //售价
apps : [{name : String}], //手机中安装的App名称,是数组
manufacturer: { //手机厂商
name : String,
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值