一、nodejs中使用mongodb

二、mongoose使用的基本步骤

  • 1、安装包

  • 2、连接数据库

    const mongoose = require('mongoose');
    // 连接到数据库
    mongoose.connect('mongodb://localhost/nest_cms');
    // 如果有用户名与密码的连接方式
    // mongoose.connect('mongodb://用户名:密码@地址:端口号/数据库');
    // mongoose.connect('mongodb://root:123456@localhost/nest_cms');
    
  • 3、定义schema

    // 使用命令查看数据库中的表 show collections 或者定义新的
    const OrderSchema = mongoose.Schema({
      order_id: String,
      uid: Number,
      trade_no: String,
      all_price: Number,
      all_num: Number,
    })
    
  • 4、创建数据模型

    mongoose.model 里面可以传入两个参数也可以传入三个参数。不过建议使用三个参数,集合名字可能与模型名字不一致的时候

    • 两个参数mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema)第三个参数会摩根根据第一个参数的小写字母来的
    • 三个参数mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema, 参数 3:数据库集合名称)
    const Order = mongoose.model('Order', OrderSchema, 'order');
    
  • 5、进行增删改查一系列操作

    // 实例化数据模型,创建数据的时候需要save
    const order1 = new Order({
      order_id: '2',
      uid: 5,
      trade_no: '333',
      all_price: 20,
      all_num: 4,
    })
    order1.save()
    
    // 查询数据
    Order.find({}, (err, docs) => {
      if (err) {
        console.log('查询错误');
      }
      console.log(JSON.stringify(docs));
    })
    

三、基本的增、删、改、查操作

  • 1、增加数据

    增加的数据必须使用实例化对象,然后调用save()函数

    const order1 = new Order({
      order_id: '2',
      uid: 5,
      trade_no: '333',
      all_price: 20,
      all_num: 4,
    })
    order1.save()
    
  • 2、删除数据

    // 删除数据
    Order.deleteOne({_id: '5e0fd41ca53860217c5831bd'}, (err) => {
        if (err) {
            console.log('删除失败');
        }
        console.log('删除成功');
    })
    
  • 3、修改数据

    // 修改数据
    Order.updateOne({_id: '5e0fd4bb08ad70786fd8ac84', all_num: 2}, {all_num: 5}, (err, res) => {
        if (err) {
            console.log('修改数据错误')
        }
        // { n: 1, nModified: 1, ok: 1 }
        console.log(res);
    });
    
  • 4、查询数据

    Order.find({}, (err, docs) => {
        if (err) {
            console.log('查询错误', err)
        }
        console.log(JSON.stringify(docs));
    })
    

四、mongoose模块化及封装单独的链接

  • 1、另外一种mongoose的连接方式

    // 第一步
    const mongoose = require('mongoose');
    
    // 第二步连接数据库
    mongoose.connect('mongodb://root:123456@localhost/nest_cms', { useNewUrlParser: true }, (err) => {
        if (err) {
            console.log('连接错误');
            return;
        }
        console.log('mongodb连接成功');
    });
    
  • 2、单独将连接封装成一个模块(别的地方引用都是单利模式,只会连接一次)

    // 第一步
    const mongoose = require('mongoose');
    
    // 第二步连接数据库
    mongoose.connect('mongodb://root:123456@localhost/nest_cms', { useNewUrlParser: true }, (err) => {
        if (err) {
            console.log('连接错误');
            return
        }
        console.log('mongodb连接成功');
    });
    
    module.exports = mongoose;