复习mongoose的基本使用

lovecodeblog 2020-01-24

mongodb参考

mongoose官网

mongoose用起来更便捷,更方便些??

使用mongodb数据驱动写一个错误日志

更多有关node官方数据驱动mongodb参考文档

这里没有使用asset断言

import mongodb from 'mongodb'

const MongoClient = mongodb.MongoClient
const url = 'mongodb://localhost:27017/edu'

export default (errLog, req, res, next) => {
  // 1. 将错误日志记录到数据库,方便排查错误
  // 2. 发送响应给用户,给一些友好的提示信息
  // { 错误名称:错误信息:错误堆栈:错误发生时间 }
  // 1. 打开连接
  MongoClient.connect(url, (err, db) => {
    db
      .collection('error_logs')
      .insertOne({
        name: errLog.name,
        message: errLog.message,
        stack: errLog.stack,
        time: new Date()
      }, (err, result) => {
        res.json({
          err_code: 500,
          message: errLog.message
        })
      })
      // 3. 关闭连接
    db.close()
  })
}

使用mongoose

const mongoose = require('mongoose')

mongoose.connect('mongodb://localhost/test')

// 1. 创建一个模型架构,设计数据结构和约束
const studentSchema = mongoose.Schema({
  name: String,
  age: Number
})

// 2. 通过 mongoose.model() 将架构发布为一个模型(可以把模型认为是一个构造函数)
//    第一个参数就是给你的集合起一个名字,这个名字最好使用 帕斯卡命名法
//        例如你的集合名 persons ,则这里就命名为 Person,但是最终 mongoose 会自动帮你把 Person 转为 persons
//    第二个参数就是传递一个模型架构
const Student = mongoose.model('Student', studentSchema)

// 3. 通过操作模型去操作你的数据库
// 保存实例数据对象
const s1 = new Student({
  name: 'Mike',
  age: 23
})
s1.save((err, result) => {
  if (err) {
    throw err
  }
  console.log(result)
})

//查询
Student.find((err, docs) => {
  if (err) {
    throw err
  }
  console.log(docs)
})

Student.find({ name: 'Mike' },(err, docs) => {
  if (err) {
    throw err
  }
  console.log(docs)
})

更多操作参考文档

相关推荐

hanyueqi / 0评论 2019-06-28