Mongoose库简而言之就是对node环境中MongoDB数据库操作的封装,一种对象模型工具,可以将数据库中的数据转换为JavaScript对象供我们使用。
npm insatll mongoose
require("mongoose");
简单看一下官网的hello world入门代码
// 引包,并不需要引用mongodb这个包
var mongoose = require('mongoose');
//链接数据库,itatic是数据库名字
mongoose.connect('mongodb://127.0.0.1:27017/itatic');
//创建了一个模型。猫的模型。所有的猫,都有名字,是字符串。“类”。
var Cat = mongoose.model('Cat', { name: String });
//实例化一只猫
var kitty = new Cat({ name: 'Zildjian' });
//调用这只猫的save方法,保存这只猫
kitty.save(function (err) {
console.log('喵喵喵');
});
var tom = new Cat({"name":"汤姆"});
tom.save(function(){
console.log('喵喵喵');
});
上述代码没有明显操作数据库的语句,例如前面的MongoDB的db.find,update,remove,insert等,很明显都是类方法使用,创建类,实例化类,使用类,操作类对象时候数据库以及被持久化了!
//创建一个小狗模型
mongoose.model("dog",{name:String,age:Number})
//实例化这个小狗
var wangcai=new dog({"name":"旺财","age":4})
//然后把这个wangcai这个类进行save方法后就存入数据库中
mongoose所有的操作不慎对数据库操作,所有的操作都是对类、实例进行的。但是数据库的持久化自动完成了。
固定格式:
var mongoose = require('mongoose');
//创建数据库连接
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/haha');
//监听open事件
db.once('open', function (callback) {
console.log("数据库成功连接");
});
步骤:建立schema结构 → 定义静态方法 → 建立模型
语法:new mongoose.Schema({})
实例:
var StudentShema = new mongoose.Schema({
"name":{type:String},
"sex":{type:String},
"age":{type:Number}
})
语法:db.model({"Student",shema名字})
实例:
//查找的静态方法(只能定义在model层)
StudentSchema.statics.chazhao=function(name,callback){
this.model("Student").find({"name":name},callback)
}
//修改的静态方法
StudentSchema.statics.xiugai=function(where,set,options,callback){
this.model("Student").update(where,set,options,callback)
}
//创建了一个模型,就是学生模型,就是学生类。
//类是基于schema创建的。
var studentModel = db.model('Student', studentSchema);
无需操作数据库,只需要考虑操作类,实例,让数据库变得简单!实例方法和静态模型方法进行数据库操作,数据库可以保持持久化!