一、认识:
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('修改成功');
})
})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。