mongoose使用

基础介绍

  1. mongoose是什么?

Mongoose是MongoDB的一个对象模型工具
同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法
让NodeJS操作Mongodb数据库变得更加灵活简单

  1. 三个基本概念

    • Schema: 相当于一个数据库的模板,定义documents的基本字段和集合
    • Model: 基本文档数据的父类,通过集成Schema定义的基本方法和属性得到相关的内容的`模型
      `
    • Instance: 通过 new Model()初始化得到的数据

使用流程

  1. 安装

    npm install mongoose
  2. 引入并连接

    const mongoose = require('mongoose');
mongoose.connect('mongodb://47.94.107.136/paper' , { useNewUrlParser: true , useUnifiedTopology: true});

创建一个数据库链接对象

let db = mongoose.connection;  //数据库连接对象
db.on('open',function(err){
    if(err){
        console.log('数据库连接失败');
        throw err;
    }
    console.log('数据库连接成功');
});
  1. scheme对象

mongoose操作数据对象都是通过scheme来操作的

想要操作数据库

  • 创建一个和集合相关的schema对象,类似于mysql的表头

    const mongoose = require ('mongoose');
    let  Schema = mongoose.Schema;  //通过mongoose来获取schema
    
    let  userSchema = new Schema({
        'user' : {type : String , require : true},
        'pwd' : {type : String , require: true},
        'age' : Number,
        'sex' : {type : Number , default : 0}
    });
  • 将schema对象转化为数据模型

    let User = mongoose.model('user' , userSchema);
 `该数据对象和集合相关联 {'集合名' , schema对象}`
  1. CURD操作

    • 插入数据
      User.insertMany({user : 'simon' , pwd : '12345' , age : 16 }).then((data) => {
          console.log(data);
          console.log('插入成功');
      }).catch((err) => {
          console.log('插入失败');
      });
    • 查询数据
      User.find({age:17}).then((data) => {
          console.log(data);
          console.log('查询结果');
      }).catch((err) => {
          console.log('查询失败');
      });
    • 删除数据
      User.remove({age:16}).then((data) => {
          console.log(data);
          console.log('删除成功');
      }).catch((err) => {
          console.log('删除失败');
      });
    • 修改数据
      User.update({age:16},{$set:{age:18}}).then((data) => {
              console.log(data);
          console.log('修改成功');
      }).catch((err) => {
          console.log('修改失败');
      });
Last modification:February 21st, 2020 at 04:18 pm
来杯coffee吧