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

  SchemaModelEntity的关系请牢记,Schema生成ModelModel创造EntityModelEntity都可对数据库操作造成影响,但ModelEntity更具操作性。

 

posted @ 2016-10-16 12:07  宋体四号  阅读(256)  评论(0编辑  收藏  举报