mongoose
Created at 2016-09-29 Updated at 2016-09-29 Category 学习
MVC 框架
M :model 模型
V: Viewport 视图
C: controller 控制器
mongoose
一个项目只需要一个数据库就够了,因为一个数据库可以建很多集合,所以数据库名与项目名尽量一致。
- 什么是mongoose?
是express代码与mongodb的连接层 mongoose的作用?
把数据转化成js对象,不在用mongo-shell操作数据库,以便我们用js代码来操作mongodb数据库中的数据
mongoose的使用
首先必须已经安装nodejs与mongodb
在项目中安装mongoose
1$npm install --save mongoose在项目只能够创建一个数据库连接,如下:
123var mongoose = require('mongoose'); //引用mongoose模块var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接打开本机localhost的test数据库时,我们可以监测是否有异常
1234db.on('error',console.error.bind(console,'连接错误:'));db.once('open',function(){//一次打开记录});
注意:
成功开启数据库后,就可以执行数据库相应操作,假设以下代码都在回调中处理定义一个Schema(概要)
描述数据记录的结构,规定数据记录中的字段名称以及字段的数据类型
123var catSchema = mongoose.Schema({name: String});将该Schema发布为Model
123var cat = mongoose.model('cat', catSchema);//第一个参数:模型对应的集合名称的单数//第二个参数:一条数据记录的结构用Model创建Entity(创建数据记录)
12var kitty = new cat({ name: 'kitty' });console.log(kitty.name);将所创建的 Entity进行保存(储存数据记录)
用js代码进行增删改查
crud
c: creat (增加)
12345678var userSchema = mongoose.Schema({userName: String,password:Number,age:String});var Info = mongoose.model('user', userSchema);var xiaomi = new Info({ userName: 'xiaomi',password:123456,age:'48岁'});xiaomi.save()r:remove (删除)
123456789Info.findById({_id: '57ecc66763f5b511c427435f'}, function(err, user) {user.remove(function(err){console.log('delete')Info.find().exec(function(err, users) {console.log(users);});});});u:update (修改后再通过save进行修改)
1234567891011Info.findById({_id: '57ecc66763f5b511c427435f'}, function(err, user) {user.age = '666666'user.save(function(err){console.log('更新了!')Info.find().exec(function(err, users) {// 异步执行console.log(users);});});});d:find (查找)findId / findName
12345Info.find().exec(function(err, users) {// 异步执行console.log(users);});