mongoDB数据库 之 Mongoose的使用

简介

Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能。核心对象包括Schema、model、document三部分。

优势

  • 1)可以为文档创建一个模式结构(Schema)
  • 2)可以对模型中的对象/文档进行验证
  • 3)数据可以通过类型转换转换为对象模型
  • 4)可以使用中间件来应用业务逻辑挂钩
  • 5)比Node原生的MongoDB驱动更容易

三部分介绍

Schema方法

定义:模式对象,对集合进行约束

model方法

定义:模型对象,相对于数据库中的集合,通过该对象对集合进行各种操作

document方法

定义:相当于数据库中的文档,可以通过该对象对文档进行各种操作

mongoose创建实例对象,连接数据库实例的demo

一般步骤

  1. 引入mongoose模块
  2. 创建schema文档对象
  3. 创建约束
  4. 创建集合对象
  5. 创建文档对象
  6. 将文档对象保存到数据库中
  7. 连接数据库
  8. 监听数据库是否连接成功
  9. 将创建过程的逻辑放入promise对象中,避免回调地狱
  10. 如果数据库连接成功,执行.then,失败,执行.catch

代码实现

//1、引入mongoose模块
var mongoose = require("mongoose")


//9、创建promise对象
var promise = new Promise((resolve,reject)=>{
    //7、连接数据库
    mongoose.connect("mongodb://localhost:27017/mongoose_test1",{useNewUrlParser:true});
    //8、设置数据库连接的集合
    mongoose.connection.once("open",err=>{
      if(!err){
        console.log("数据库连接成功")
        resolve();
      }else{
        console.log(err);
        reject(err);
      }
    })
})

//10、调用.then函数
promise
  .then(()=>{
  //  数据库连接成功

      //2、创建schema对象
      var Schema = mongoose.Schema;
      //3、创建约束
      var studentsSchema = new Schema({
        name:String,
        age:Number,
        sex:String,
        phone:{
          type:String,   //字符串型
          unique:true,   //唯一的
          required:true  //必须写,不写会报错
        },
        info:Schema.Types.Mixed,  //混合型
        hobby:[String],  //由于hobby可以有多个,用数组
        meta:{
          createTime:{
            type:Date,
            default:Date.now()   //默认时间,是现在
          },
          updateTime:{
            type:Date,
            default:Date.now()
          }
        }
      })
      //4、创建文档对象
      var Students = mongoose.model('Students',studentsSchema);
     //5、创建集合对象
      var studentS = new Students({
        name:"许真真1",
        age:23,
        sex:"女",
        phone:"13141666412",
        info:"喜欢你",
        hobby:["读书","吃饭"]
      })
    // 6、保存创建的集合对象
      studentS.save(err=>{
        if(!err){
          console.log("数据保存成功")
        }else{
          console.log(err);
        }
      })
  })
  .catch(err=>{
    console.log(err);
  })
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值