mongoose

Created at 2016-09-29 Updated at 2016-09-29 Category 学习 Tag 后台

MVC 框架

M :model 模型

V: Viewport 视图

C: controller 控制器

mongoose

一个项目只需要一个数据库就够了,因为一个数据库可以建很多集合,所以数据库名与项目名尽量一致。

  1. 什么是mongoose?
    是express代码与mongodb的连接层
  2. mongoose的作用?

    把数据转化成js对象,不在用mongo-shell操作数据库,以便我们用js代码来操作mongodb数据库中的数据

  3. mongoose的使用

    • 首先必须已经安装nodejs与mongodb

    • 在项目中安装mongoose

      1
      $npm install --save mongoose
    • 在项目只能够创建一个数据库连接,如下:

      1
      2
      3
      var mongoose = require('mongoose'); //引用mongoose模块
      var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接
    • 打开本机localhost的test数据库时,我们可以监测是否有异常

      1
      2
      3
      4
      db.on('error',console.error.bind(console,'连接错误:'));
      db.once('open',function(){
      //一次打开记录
      });

    注意:
    成功开启数据库后,就可以执行数据库相应操作,假设以下代码都在回调中处理

    • 定义一个Schema(概要)

      描述数据记录的结构,规定数据记录中的字段名称以及字段的数据类型

      1
      2
      3
      var catSchema = mongoose.Schema({
      name: String
      });
    • 将该Schema发布为Model

      1
      2
      3
      var cat = mongoose.model('cat', catSchema);
      //第一个参数:模型对应的集合名称的单数
      //第二个参数:一条数据记录的结构
    • 用Model创建Entity(创建数据记录)

      1
      2
      var kitty = new cat({ name: 'kitty' });
      console.log(kitty.name);
    • 将所创建的 Entity进行保存(储存数据记录)

  4. 用js代码进行增删改查

    crud

    • c: creat (增加)

      1
      2
      3
      4
      5
      6
      7
      8
      var 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 (删除)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      Info.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进行修改)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      Info.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

      1
      2
      3
      4
      5
      Info.find().exec(function(err, users) {
      // 异步执行
      console.log(users);
      });

Table of Content

  1. MVC 框架
  2. mongoose
    1. crud
Site by Mickey using Hexo & Random

Hide