Mongoose 操作数据库实现增、删、改、查

2020-11-26 12:30:35 浏览数 (1)

1. Mongoose 介绍

Mongoose 是在 Node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具,Mongoose 是 NodeJS 的驱动,为NodeJS独有。

Mongoose 有两个特点

1. 通过关系型数据库的思想来设计非关系型数据库。

2. 基于 mongodb 数据库,但简化了操作。

官网: https://mongoosejs.com/

2. Mongoose 的安装

1. 安装Mongoose

代码语言:javascript复制
npm i mongoose --save

2. 引入 Mongoose 连接数据库。

代码语言:javascript复制
const mongoose = require('mongoose'); 

mongoose.connect('mongodb://localhost/database_name');

如果有账户密码需要采用下面的连接方式

代码语言:javascript复制
mongoose.connect('mongodb://student_admin:123456@localhost:27017/database_name');

3. 定义 Schema

数据库中的 Schema,为数据库对象的集合,Schema 是 Mongoose 里使用的一种数据模式, 可以理解为表结构的定义,每个 Schema 会映射到 Mongodb 中的一个 Collection,它不具备操作数据库的能力。

代码语言:javascript复制
var UserSchema = mongoose.Schema({ 
    name: String, 
    age: Number, 
    status: Number,
})

4. 创建数据模型

数据模型 Model 是由 Schema 生成的模型,可以对数据库进行操作,定义模型可以传入两个参数也可以传入三个参数。

(1). 传两个参数格式如下:

mongoose.model(ModelName,Schema )

第一个参数ModeName为定义的模型名称,并且会和这个模型名称的复数集合所在的数据库建立连接,并操作这个集合,注意:模型名称首字母需要大写,第二个参数Schema为已定义好的Schema。

代码语言:javascript复制
var User=mongoose.model('User', UserSchema);

如上面的定义的模型名称叫User,会操作所在数据库中的 users 这个集合。

(2). 传三个参数时格式如下:

var User=mongoose.model('User', UserSchema, Collection)

传入三个参数时,前两个参数意思一样,第三个参数为所要操作的集合名称。

代码语言:javascript复制
var User=mongoose.model('User', UserSchema, student);

如上面的定义的模型名称叫User,会操作所在数据库中的 student 这个集合。

3. Mongoose 的常用操作

1. 查找数据

代码语言:javascript复制
User.find({}, function (err, docs) { 
    if (err) { 
        console.log(err); 
        return; 
    } 
    console.log(docs); 
})

2. 增加数据

代码语言:javascript复制
// 实例化模型,传入增加的数据 
var user = new User({
    name: 'Lucy',
    age: 20,
    status: true
});
// 保存数据
user.save();

3. 修改数据

代码语言:javascript复制
User.updateOne(
    { name: 'Lucy' },
    { name: 'Augus' }, 
    function (err, res) { 
        if (err) { 
            console.log(err); 
        return;
    } 
    console.log('修改成功') 
});

4. 删除数据

代码语言:javascript复制
// 传入的ID不用包装成ObjectID对象
User.deleteOne({ _id: '5b72ada84e284f0acc8d318a' }, 
    function (err) { 
        if (err) { 
            console.log(err); 
        return; 
    }
    console.log('成功'); 
});

5. 保存成功后查找

代码语言:javascript复制
var user = new User({ 
    name: 'Lucy', 
    age: 20, 
    status: true  
}) 
user.save(function(err,docs){ 
    if(err){
        console.log(err); 
        return; 
    } 
    User.find({},function(err,docs){ 
        if(err){
            console.log(err); 
            return; 
        }
        console.log(docs); 
    }) 
});

0 人点赞