MongoDB 的数据库里面都会有一些叫集合的东西,英文是 collections,它相当于是 SQL 类型的数据库里的 Table,也就是数据表 .. 比如一个应用里面,文章内容可能在一个 collection 里面,用户可能在 collection 里面。每个 collection 里面包含的是一些文档,英文是 Document .. 文档相当于是 SQL 数据库里的 Record ,也就是记录 ...
每个文档都会有一些字段,比如一个用户文档,可能有用户名,密码,邮件地址这些字段 .. 描述这些字段的东西叫做 Schema,它里面定义了文档里包含哪些字段,还可以设置这些字段的验证方法,比如字段的类型是什么,是数字还是字符串,是不是唯一的,字段的最大或者最小值应该是多少 ...
基于定义的这个 Schema,我们可以去创建数据的 Model,也就是模型。有了模型以后,你可以使用模型上的方法去处理对应的集合里的文档 ...
先添加一个 js 文件 ... 放在 models 目录的下面,这个目录里可以存储应用需要的所有的数据模型 .. 先创建一个叫 event 的模型,表示活动... 假设用户在我们的应用里可以发布活动,比如在哪里举行了什么大会,或者活动之类的,感兴趣的用户可以订阅活动,到时候会收到提醒 .. 这个 event 就是应用里的用户发布的活动相关的数据 ..
当然我们在这个课程里并不会去开发应用的完整的功能,我们的主要目的还是去学习使用 MongoDB 与 Nodejs ..
有了这个模型文件以后,先把之前创建的 database 导入进来 ... 它里面用 Mongoose 创建了对 MongoDB 数据库的连接 .. const db ,名字可以随便起,这里我叫它 db .. 这个 db 里面包含的东西实际上就是 Mongoose .. 位置是上一级目录下面的 config 下面的 database ..
const db = require('../config/database')
下面去添加这个模型需要的 Schema ... 这个 Schema 可以有一些选项,添加一个 options ,先用一个空白的对象 .. 再创建一个 schema ... 它的值可以用一下 Mongoose 的 Schema 方法 .. schema = new db.Schema .. 这里我们用 db 表示的 Mongoose ..
给它一个对象,对象里面的东西就是 Event ,也就是活动模型里包含的一些字段 .. 比如活动模型里面需要有个活动的标题 ... 添加一个 title .. 它的值可以是个对象,里面用一个 type 属性 ... 指定一下这个字段的值的类型 .. String 表示字符串 ... Number 是数字,Boolean 是布尔值 ..
你可以继续添加活动模型里面可能包含的其它的字段 .. 我们先只添加一个 title ... 然后再把上面定义的 options 交给这个 Schema 方法 ..
模型
下面我们可以基于这个 Schema 再去创建一个 Model,也就是模型 .. 名字可以随便起,比如 Event,表示活动 ...
用一下 Mongoose 的 model 方法去创建模型 .. 它的第一个参数是要创建的模型的名字,这里就是 Event,第二个参数是模型的 Schema .. 上面已经定义好了一个 Schema ..
导出
最后再导出这个 Event ...