mongoose

mongoose是什么

  • Mongoose是MongoDB的对象建模工具。
  • Mongoose用于和MongoDB通信(增删改查)。
  • Mongoose运行在Node.js平台上。
    - Mongoose()是一个构造函数
    - 引入mongoose模块会自动创建mongoose示例对象

const mongoose = require('mongoose') :引入mongoose模块会自动创建mongoose示例对象

  • mongoose是一个对象
  • Mongoose.connections 属性
  • Mongoose.Schema 函数
  • Mongoose.model 模块

mongoose.connect()
定义:用于链接MongoDB数据库,它是一个异步函数

语法

mongoose.connect(uri)
mongoose.connect(数据库链接字符串)

返回值:返回一个Promise对象

示例

promise.then()

定义:
then
then方法最多接收两个参数:Promise 已完成的回调函数 和 Promise 已拒绝的回调函数

语法:

promise.then(req,res)

promise.then(data =>{
    //在异步操作成功时,处理异步操作的结果
},error => {
  //在异步操作失败时,输出错误的原因
})

//一个参数:大多时候我们更关注异步操作成功
promise.then( res =>{
    //在异步操作成功时,处理异步操作的结果
})

//then()方法可以链式调用
promise.then( res =>{
    //在异步操作成功时,处理异步操作的结果
}).then((res) => {}).then((res) => {}).then((res) => {})

返回值:返回一个等效的prmose对象

示例

promise.catch()

定义:用于为promise对象绑定请求失败时的回调
方法用于捕获错误信息。

语法

promise.catch((err) => {})

返回值:返回promise对象

promise.then 和 promise.catch()的区别

  • 参数:promise.then有两个参数,promise.catch()只有一个参数

mongoose.model()

定义:

  • 用于创建与MongoDB数据库通信的交互工具。
  • 交互工具在这里就是指一个构造函数。
  • 构造函数可以实例化一个对象。
  • 通过实例对象的方法与数据库进行通信。

语法

const Blog = mongoose.model('模型名称',模型的原型)
 const Blog = mongoose.model('模型名称',blogSchema)

返回值:返回一个Model()构造函数

实例

const mongoose = require('mongoose')
const {Schema} = mongoose
const blogSchema = new Schema({
    title:{
      type:String,
      required:true,
    },
    author:{
      type:String,
      required:true,
    },
    snippet:{
      type:String,
      required:true,
    },
    body:{
      type:String,
      required:true,
    }
},{})
const Blog = mongoose.model('Blog',blogSchema) 
module.exports = Blog

Schema()

定义:

  • 是一个构造函数或者是个类。
  • 用于描述数据表的结构
    - 数据库:由多个数据库表构成
    - 数据库表:由多个document(记录)构成。
    - Document: 由字段和值构成。

语法

new Schema({定义表结构},{选项对象})

const blogSchema = new Schema({
    title:{
      // 字段类型
      type:String,
      // 字段是否必写
      required:true,
    },
    body:{
      type:String,
      required:true,
    }
  • 定义表结构:定义哪些字段、每个字段的数据类型、是否必填等
  • 选项对象:提供了一些参数,用来配置第一个参数 [可选]

返回值:返回schema对象,表示数据结构

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容