mongoose是nodeJS提供连接 mongodb的一个库,此外还有mongoskin, mongodb(mongodb官方出品).
接下来是我对mongoose应用的中的一些总结和在应用过程中的一个里面。
如何通过mongoose去连接mongodb
db.js
//引入mongoose
var mongoose = require('mongoose');
const bluebird = require('bluebird');
mongoose.Promise = bluebird;
//引入已经写好的model
var userModel = require('./userModel').userModel;
//使用mongoose连接mongodb
mongoose.connect('mongodb://localhost/tserver');
var db=mongoose.connection;
db.on('error', console.error.bind(console, '数据库连接错误'));
db.once('open', function () {
console.log(' database open success');
});
//把定义好的model 放到mongodb里面
db.userModel = userModel;
//
module.exports=db;
预制好的model
//引入mongoose
var mongoose = require('mongoose');
//初始化 Schema
var userSchema = new mongoose.Schema({
userName:{
type:String
},
passWord:{
type:String
}
});
//exports Schema
exports.userSchema=userSchema;
//集成Schema 初始化 model
exports.userModel=mongoose.model('user',userSchema,'user');
代码解析:
首先看一下 mongoose 、schema 和model 之间的关系
mongoose实际上,可以说是Oracle和mongodb的一个混合产物,但归根接地还是mongodb的. 盗图,某作者珍藏很久的对比图. 熟悉其他数据库的同学应该能很快明白的.
通过上面的阐述,我们大概能知道了在Mongoose里面有哪几个基本概念.
Schema: 相当于一个数据库的模板. Model可以通过mongoose.model 集成其基本属性内容. 当然也可以选择不继承.
Model: 基本文档数据的父类,通过集成Schema定义的基本方法和属性得到相关的内容.
instance: 这就是实实在在的数据了. 通过 new Model()初始化得到.