05_Mongooes

Mongooes

Mongoose是通过Node来操作MongoDB的一个模块。是基于Node.js的第三方模块。

一、Node.js安装

1.解压

在这里插入图片描述

2.创建文件夹

解压路径下,创建两个文件夹

  • node_global:全局安装位置

  • node_cache:缓存

    在这里插入图片描述

3.配置

配置环境变量

在path路径中添加环境变量

在这里插入图片描述

测试1

cmd执行命令:

node -v
npm -v

在这里插入图片描述

配置全局安装位置,缓存路径

cmd下输入两个命令:

npm config set prefix "global文件夹的全路径"npm config set cache "cache文件夹的全路径"
例如:npm config set cache "E:\- Nodejs\node-v12.18.1-win-x64\node_cache"

测试2

cmd下输入命令

npm install webpack -g

更新npm为最新版本

npm install npm -g

在这里插入图片描述

二、安装mongoose

npm install mongoose -g

安装到全局目录下node_global

三、Mongoose

Mongoose是通过Node来操作MongoDB的一个模块。是基于Node.js的第三方模块。

Mongoose是一个对象文档模型库,它封装了Node原生的MongoDB操作。

好处

  • 可以为文档创建一个模式结构(Schema)
  • 可以对模型中的队形/文档进行验证
  • 数据可以进行类型转换
  • 操作更简单容易

对象

MongoDB中数据库,集合,文档。

Collection中包含文档

Document文档是BSON

同一个Collection中可以有多个Document,多个Document的结构可以不一样。

在这里插入图片描述

  • Schema:模式对象
    • 定义并且数据库中的文档结构,集合的结构,保证同一个集合中所有的文档结构是一致的
  • Model:模型对象
    • 表示集合,相当于数据库中的Collection
  • Document:文档对象
    • 相当于数据库中的Document,表示一个具体的文档

顺序:

Schema -> Model -> Document

四、使用

Mongoose在安装会自动安装驱动。

1.引入Mongoose模块

let mongoose = require("E:\\- Nodejs\\node-v12.18.1-win-x64\\node_golbal\\node_modules\\mongoose");

2.连接

// 连接数据库
mongoose.connect('mongodb://localhost:27017/bookshop', {useNewUrlParser: true, useUnifiedTopology: true});// 断开连接
mongoose.disconnect();

3.监听数据连接情况

mongoose.connection.once("connected",function(){console.log("数据库连接成功");
});mongoose.connection.once("open",function(){console.log("数据库open");
});mongoose.connection.on("open",function(){console.log("数据库open");
});mongoose.connection.once("close",function(){console.log("数据库关闭");
});mongoose.connection.once("disconnected",function(){console.log("数据库断开连接");
});mongoose.connection.once("error",function(error){console.log("数据库连接错误"+error);
});

4.Schema

模式对象

  • 定义并且数据库中的文档结构,集合的结构,保证同一个集合中所有的文档结构是一致的

5.数据库操作

作业:

使用mongoose连接数据库,并创建集合,添加文档。

封装成一个js

g(“数据库连接错误”+error);
});


## 4.Schema模式对象- 定义并且数据库中的文档结构,集合的结构,保证同一个集合中所有的文档结构是一致的## 5.数据库操作# 作业:使用mongoose连接数据库,并创建集合,添加文档。封装成一个js

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513461.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

找不到msvcr100.dll怎么办,多种解决方法快速修复msvcr100.dll问题

当计算机系统中关键文件msvcr100.dll丢失时,可能会引发一系列运行问题和故障现象。msvcr100.dll是Microsoft Visual C Redistributable Package的一部分,对于许多基于Windows的应用程序正常运行至关重要。由于msvcr100.dll是许多应用程序运行所必需的动态…

Linux 防火墙 操作命令【实用】

防火墙操作: 描述命令查看防火墙状态systemctl status firewalld、firewall-cmd --state暂时关闭防火墙systemctl stop firewalld永久关闭防火墙systemctl disable firewalld开启防火墙systemctl start firewalld开放指定端口firewall-cmd --zonepublic --add-port…

ES入门六:Suggesters Api实践

都是负担在很多app上,当我们输入某些内容时候,它会立即做一些补全操作,如果我想实现上述的需求,我们就可以使用ES提供的Suggesters Api。那Suggesters是如何做到的那?简单来说,Suggesters会将输入的文本拆分…

Python 实现冒泡排序算法

Python 实现冒泡排序算法 下面是用 Python 实现的冒泡排序算法示例代码: def bubble_sort(arr):n len(arr)# 遍历数组元素for i in range(n):# 每次遍历都将最大的元素移动到最后for j in range(0, n-i-1):# 如果相邻的元素逆序,则交换它们if arr[j] …

Vue.js 深度解析:模板编译原理与过程

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

ES入门七:索引管理Api的使用

索引设置 在传家索引的时候,可以在“settings”字段中指定索引的位置。numbers_of_shards和nubmer_of_replicas 是索引非常重要的两个配置,设置它们值的示例如下: 我们还可以动态修改索引的位置,其示例如下:如上示例…

力扣404 左叶子之和 Java版本

文章目录 题目描述解题思路代码 题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 2…

docker pull 拉取失败,设置docker国内镜像

遇到的问题 最近在拉取nginx时,显示如下错误:Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled (Client.Timeout exceeded while awaiting headers)。 这个的问题是拉取镜像超时,通过检索…

JavaScript基础3之面向对象关于面向过程、函数式编程、对比、构造函数、原型

JavaScript基础 面向对象面向过程函数式编程命令式编程函数式编程特性副作用透明引用不可变变量函数是一等公民 常见的函数式编程模型 面向对象为什么要使用面向对象封装继承多态 对比面向过程函数式编程面向对象 构造函数原型constructor使用场景 对象原型 面向对象 面向过程…

【教3妹学编程-算法题】超过阈值的最少操作数 II

2哥 : 叮铃铃,3妹,准备复工了啊,过年干嘛呢,是不是逛吃逛吃,有没有长胖呢。 3妹:切,不想上班,假期能不能重来一遍啊,虽然在家我妈张罗着要给我相亲呢。可是在家还是很好的…

贝叶斯优化双向门控循环单元BO-BIGRU时序预测的matlab实现【源代码】

贝叶斯优化双向门控循环单元简介: 贝叶斯优化双向门控循环单元(BO-BIGRU)是一种结合了贝叶斯优化和双向门控循环单元(BIGRU)的神经网络模型。BIGRU是一种改进的循环神经网络(RNN),它…

使用J-Link | OPENSDA 调试S32K144开发板

一、S32DS下载 使用的开发软件为S32DS,可以到NXP官网下载:链接,也可以通过网盘:链接 二、对S32K144开发板进行调试 调试方法一: S32K144开发板自带一个OPENSDA MCU,我们可以通过一根Mircro USB线连接到电…