#mongoose的使用详解#
##1.Scheme、model和Entity##
Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
Entity : 由Model创建的实体,他的操作也会影响数据库
它们之间的关系是Schema生成Model,Model创造Entity,Model和Entity都可对数据库操作造成影响,但Model比Entity更具操作性。
##2.做一些准备工作##
Nodejs和mongodb的安装
创建一个数据库连接
var mongoose = require('mongoose'); //引用mongoose模块
var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接
4.定义一个Schema
var PersonSchema = new mongoose.Schema({
name:String //定义一个属性name,类型为String
});
5.将该Schema
发布为Model
var PersonModel = db.model('Person',PersonSchema);
//如果该Model已经发布,则可以直接通过名字索引到,如下:
//var PersonModel = db.model('Person');
//如果没有发布,上一段代码将会异常
6.用Model
创建Entity
var personEntity = new PersonModel({name:'Krouky'});
//打印这个实体的名字看看
console.log(personEntity.name); //Krouky
7.我们甚至可以为此Schema
创建方法
//为Schema模型追加speak方法
PersonSchema.methos.speak = function(){
console.log('我的名字叫'+this.name);
}
var PersonModel = db.model('Person',PersonSchema);
var personEntity = new PersonModel({name:'Krouky'});
personEntity.speak();//我的名字叫Krouky
8.Entity
是具有具体的数据库操作CRUD
的
personEntity.save(); //执行完成后,数据库就有该数据了
9.如果要执行查询,需要依赖Model
,当然Entity
也是可以做到的
PersonModel.find(function(err,persons){
//查询到的所有person
});
参考资料: http://www.hubwiz.com/course/543b2e7788dba02718b5a4bd