zoukankan      html  css  js  c++  java
  • 3_mongoose ODM框架及其安装

    3_mongoose ODM框架及其安装

    mongoDB和mongoose

    我们可以将mongoDB想象成原始炼铁的一系列过程,将铁矿破碎、磨粉、烧结,这个过程都是人工操作的,极其繁琐,效率低下。所以对mongoDB进行封装,引入mongoose。

    mongoose可以想象成自动化流水线炼铁作业,大幅度提高操作的速度以及降低错误的可能。

    mongoose是mongoDB的一个对象模型工具,是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步的环境下执行。同时它也是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更加容易。

    mongodb 增删盖查数据库很自由,插入数据时传入json 数据就可以了,而没有对json格式进行约束,无法保证存在数据库里的数据都是同样的格式。
    所以mongoose为mongodb提供了一种直接的,基于scheme结构去定义你的数据模型。它内置数据验证,查询构建,业务逻辑钩子等,开箱即用。
    总的来说,建议使用mongoose对数据进行约束,相当于用ts改善js一样,让我们可以清晰地知道最后的数据类型。

    mongoose构建在mongodb之上,提供了Schema、Model和Document对象,用起来更为方便。
    我们可以用Schema对象定义文档的结构(类似表结构),可以定义字段和类型、唯一性、索引和验证。Model对象表示集合中的所有文档。Document对象作为集合中的单个文档的表示。mongoose还有Query和Aggregate对象,Query实现查询,Aggregate实现聚合。

    一般来说,服务器都不会直接操作数据库,而是通过相应的模型对象对数据/文档进行映射,再进行操作。
    因为服务器与数据库之间的连接很慢,首先要进行地址,端口,账号,密码和数据类型的校验,连接完成之后数据库要从磁盘上读取数据进行查询或者存储。
    而所谓的ODM对象文档模型框架就是

    • 1.预先定义好了类型约束规则,省去了校验的步骤,
    • 2.将磁盘上的数据库数据预加载到了内存,省去了大量的加载时间

    mongoDB是非关系型数据库,数据以键值对的形式存在(数据的组织形式不统一),每一个数据文档可以有不一样的字段,可以根据需要增加一些自己的键值对,而mongoDB作为一个数据库,它没有对服务器的crud指令进行快速分析的能力,或者说分析指令能力较弱。虽然mongoDB提供给node.js一些API进行数据库访问,但因为操作慢并且繁琐,这个时候需要一个媒介----mongoose。当mongoose接到服务器的crud指令,负责将已从磁盘上加载到内存的一条条数据映射成内存对象,让服务器进行操作。

    为什么使用第三方模块
    为什么使用第三方模块

    新建一个项目文件夹,使用控制台命令 cd 切换到该文件夹(或者直接复制路径到控制台),并在该文件夹内使用npm install mongoose命令下载 mongoose

    使用控制台命令 cd 切换到该文件夹
    使用控制台命令 cd 切换到该文件夹

    默认情况下,mongoDB是启动状态的,但如果链接数据库失败,可在命令行工具中运行net start mongoDB即可启动MongoDB,否则MongoDB将无法连接。

    npm i mongoose
    npm i mongoose

  • 相关阅读:
    小程序 canvas实现图片预览,图片保存
    MySQL实现排名并查询指定用户排名功能
    微信小程序canvas把正方形图片绘制成圆形
    WINDOW 安装ImageMagick服务端和PHP的imagick插件
    安装PHP扩展32位与64位的误区(x86与x64的查看)
    linux 安装 ImageMagick 和 imagick 扩展
    php 获取顶级域名
    php中通过Hashids将整数转化为唯一字符串
    yii2项目中运行composer 过程中遇到的问题
    yii2 mysql根据多个字段的数据计算排序
  • 原文地址:https://www.cnblogs.com/singledogpro/p/14961612.html
Copyright © 2011-2022 走看看