複習mongoose的基本使用

mongodb參考javascript

mongoose官網java

mongoose用起來更便捷,更方便些🤫node

使用mongodb數據驅動寫一個錯誤日誌

更多有關node官方數據驅動mongodb參考文檔git

這裏沒有使用asset斷言github

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

安裝:mongodb

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

更多操做參考文檔數據庫

相關文章
相關標籤/搜索