欢迎来到 跌倒的小黄瓜 的博客

♪(^∇^*)我要当大佬,(#^.^#)哈哈哈哈,(。-ω-)zzz我要成为优秀的人,(*^▽^*)٩(๑>◡<๑)۶O(∩_∩)O哈哈~~~~~~~~欢迎━(*`∀´*)ノ亻!

复习mongoose的基本使用

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()
  })
}

存储结构

  • 一个计算机上可以有一个数据库服务实例
  • 一个数据服务实例上可以有多个数据库
  • 一个数据库中可以有多个集合
    • 集合根据数据的业务类型划分
    • 例如用户数据、商品信息数据、广告信息数据。。。
    • 对数据进行分门别类的存储
    • 集合在 MongoDB 中就类似于数组
  • 一个集合中可以有多个文档
    • 文档在 MongoDB 中就是一个 类似于 JSON 的数据对象
    • 文档对象是动态的,可以随意的生成
    • 为了便于管理,最好一个集合中存储的数据一定要保持文档结构的统一(数据完整性)
{
  collection1: [
    { a: { age: 18, name: '', lsit: [], is: true } },
    { 文档2 },
    { 文档3 }
  ],

  collection2: [

  ],

  collection3: [

  ],

  collection4: [

  ],
}

使用mongoose

Mongoose

安装:

# npm install --save mongoose
yarn add 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)
})


更多操作参考文档

posted @ 2020-01-24 21:39  跌倒的小黄瓜  阅读(185)  评论(0编辑  收藏  举报