mongoose初探
学习mongoose首先需要安装nodejs 和 MongoDB,网上有很多安装教程,这里不多赘言。
接着cmd到你的工程里面执行npm install mongoose --save (执行--save会在你的json文件里面添加依赖)。
有了这些我们就可以开始学习mongoose了,那么我们就先来学习下mongoose存储的三个重要概念。
Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力。在mongoose 一切事物都开始于Sechma,Sechema不仅定义了文档的结构和属性的属性,还定义了文档实例方法、静态模型方法、复合索引和文档生命周期钩子,称为中间件。来看代码:
1 var mongoose = require('mongoose'); //引用mongoose模块 2 var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接 3 4 db.on('error',console.error.bind(console,'连接错误:')); 5 db.once('open',function(){ 6 //一次打开记录 7 }); 8 //假设以下代码在回调中处理 9 var Schema = mongoose.Schema; //定义一个Schema 10 11 var blogSchema = new Schema({ 12 title: String, //定义一个title属性,类型String 13 author: String, 14 body: String, 15 comments: [{ body: String, date: Date }], 16 date: { type: Date, default: Date.now }, 17 hidden: Boolean, 18 meta: { 19 votes: Number, 20 favs: Number 21 } 22 });
现在已经定义好了Scame,那么接下来干嘛呢?mongoose的第二个概念就要出场了——Model。
Model:由Schema
发布生成的模型,具有抽象属性和行为的数据库操作对。
//使用mongoose.model(modelName, schema)将定义好的Schema实例为可以为我们工作的model。 var Blog = mongoose.model('Blog', blogSchema);
Entity:由Model
创建的实体,他的操作也会影响数据库。
var blog1 = new blog({title:'mongoose learning',author:'yuanzp',body:'mongoose is easy to learning.'}); //打印这个实体的名字看看 console.log(blog1.name); //Krouky
Schema
、Model
、Entity
的关系请牢记,Schema
生成Model
,Model
创造Entity
,Model
和Entity
都可对数据库操作造成影响,但Model
比Entity
更具操作性。