为什么要使用Mongoose

  • mongodb的格式过于灵活,可以插入任何数据,不受限制。实际开发中要有数据格式规范,特别是多人协作时。
  • 那不就和Mysql一样了吗?这仅仅是使用层面的调整,并不是Mongodb的初衷。
    • 以格式松散数据为主,少量规范数据可以这么用
    • 以大量格式规范数据,最好直接选择Mysql

概念

Schema

用来定义数据规范

Modal

以modal操作collection

使用

  • Mongoose连接客户端 ```javascript const mongoose = require(‘mongoose’)

const url = ‘mongodb://localhost:27017’ const dbName = ‘myblog’

mongoose.set(‘useFindAndModify’, false)

mongoose.connect(${url}/${dbName}, { useNewUrlParser: true, useUnifiedTopology: true })

const db = mongoose.connection

// 发生错误 db.on(‘error’, err => { console.error(err) })

// // 连接成功 // db.once(‘open’, () => { // console.log(‘mongoose connect success…’) // })

module.exports = mongoose

  1. - 定义model模型
  2. ```javascript
  3. // 对应 blog 集合
  4. const mongoose = require('../db')
  5. const BlogSchema = mongoose.Schema({
  6. title: {
  7. type: String,
  8. required: true // 必需
  9. },
  10. content: String,
  11. author: {
  12. type: String,
  13. required: true
  14. }
  15. }, { timestamps: true })
  16. const Blog = mongoose.model('blog', BlogSchema)
  17. module.exports = Blog
  • 使用模型操作文档
    1. const list = await Blog.find(whereOpt).sort({ _id: -1 })

    相关学习资料