前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mongoose 操作数据库实现增、删、改、查

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

作者头像
越陌度阡
发布2020-11-26 12:30:35
1.8K0
发布2020-11-26 12:30:35
举报

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); 
    }) 
});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Mongoose 介绍
  • 2. Mongoose 的安装
  • 3. Mongoose 的常用操作
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档