1

一、认识:

Mongoose是一个基于node.js的用于操作mongodb数据库的第三方模块。

理解:相当于vue快速创建项目的时候需要安装vue-cli脚手架,是防止操作mongodb总用命令,所以在能快速创建项目的同时,也方便操作数据库增删改查,这就是一个方便操作mongodb数据库的工具。(这个是我自己的理解,如果说错,请麻烦留言指导,不要勿喷!)


二、安装:

npm install mongoose

三、使用方法:

1)连接数据库
语法:
  mongoose.connect("mongodb://服务器:端口号/数据库名",function(err){
        if(err){thorw err;}else{console.log('数据库链接成功')}
      })

前提条件:

      ①mongo数据库已经运行;
      ②已经安装了mongoose包;
      ③在以下之前需要先在路由router目录中引入:var mongoose=require('mongoose');
2)定义骨架Schema
概念:
  Schema骨架是一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力。
  
语法:
      var schema=new mongoose.Schema({
        字段名:类型,
        字段名:类型,
      })
    类型有:string,Number,Date,Buffer,Boolean,objectId,Array...
3)创建模型model

概念:由Schema发布生成的模型,具有抽象属性和行为的数据库操作行为。通常用于读取数据库。

语法:
var singerModel=mongoose.model('模型名称','骨架','集合名称');

注意:模型名称最好与集合名称一样。


4)创建实体Entity

概念:是根据模型创建一个实例,具备操作数据库的能力,通常用于写数据(新增、修改、删除)

语法:

    var singer=new singerModel();
    singer.属性名=值;
    singer.save();//将添加到实例上的属性保存到数据库中
    singer.remove();  //删除数据

四、数据操作

1)读取数据/查询数据

//找出多条数据
模型.find({条件},function(err,data){
    //data是从数据库中读取到的数据;
    //find方法找出来的数据一定是一个数组,即使没有数据也是一个空数组。
})

//通过ID查找1条数据
模型.findById('id',function(err,data){
    //findById找出来的数据是一个对象
})

//另一种常用的写法limit(),(为了实现更好的链式调用)
模型.find({}).limit(1).exec(function(err,data){
//limit(条数)用来查看多少条数据
})

2)新增数据

这一步需要用到创建实体,比如:
var list=new listModel();
list.name='弘毅',
list.age=22;
list.save(function(err){
    console.log('新增成功');
})
注意:如果骨架中没有定义属性及类型,是不能加进数据库的。

3)删除数据

思想:
     第一步:找出要被删除的数据;
     第二步:调用remove()方式删除的数据;
实现:
    模型名.findById(id).exec(function(err,data){
        data.remove(function(err){
        })
    })

4)修改数据

思想:
     第一步:找出要被修改的数据;
     第二步:将数据修改以后保存回数据库;
实现:
    listModel.findById(id).exec(function(err,data){
       data.name=新的值;
       data.age=新的值;
       data.save(function(err){
          console.log('修改成功');
        })
    })

史晶晶
78 声望3 粉丝

菜鸟爱学习


引用和评论

0 条评论