当前位置:网站首页 > 数据科学与大数据 > 正文

mongodb数据库安装教程(mongodb4.2安装教程)



6、连接指定的MongoDB数据库

八、MongoDB数据库常用命令:

1、查看所有数据库:

2、查看当前所在数据库:

3、查看当前所在数据库中所有集合:

4、查看当前数据库相关信息(名称、文档个数、视图、索引、大小等):

5、创建、打开、切换 数据库:

6、删除数据库(注:这里是删除当前所在的数据库)

7、清屏(这是Dos的命令,当窗口中的内容太多时,可以使用该命令,清除屏幕内容,保持界面清晰):

8、MongoDB 数据库备份与恢复,集合导入与导出:

9、操作帮助命令(列出MongoDB数据库所有的操作方法)

九、启动 或 创建 指定的MongoDB数据库:

1、使用 mongod 命令: 创建 或 启动 指定的MongoDB数据库!

2、如果mongodb数据库路径太长,要输入很久,还可这样做

3、注意事项:

十、MongoDB数据库-复制集

1、为什么要用复制集?

2、在windows系统下搭建MongoDB复制集:

3、启动复制集节点

4、关联复制集节点

5、查看从节点是否正常同步数据

十一、MongoDB数据库-模型设计

1、什么是数据模型?

2、数据模型的三要素:

3、什么时候才应该使用引用方式(拆分集合(表)):

4、MongoDB 引用是有限制的:

5、MongoDB 文档模型设计的三个误区 :

十二、MongoDB数据的操作:(和关系型数据库一样,就是增、删、查、改)

1、插入数据:insert()、insertOne()、insertMany()

2、查找数据:find()、findOne()

3、修改数据:update()

4、删除数据:remove()

5、删除集合:drop()

6、索引:

十三、在Node.js中使用MongoDB数据库

1、Node.js框架:

2、MongbDB驱动:


MongoDB 是一种基于文档的非关系(NoSQL)数据库,为开发者提供了高性能、高可用性和易用性的灵活且高效的数据存储解决方案。在当今快速发展的软件开发领域,开发者需要一个能够快速适应变化、处理大量数据并且易于扩展的数据库解决方案。

MongoDB 官网https://www.mongodb.comicon-default.png?t=N7T8https://www.mongodb.com/

  • MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统
  • MongoDB 可在高负载的情况下,添加更多的节点,可以保证服务器性能
  • MongoDB 可为Web应用提供可扩展高性能数据存储解决方案。
  • MongoDB 将数据存储在灵活的json文档中,这意味着可以直接得到从文档到文档的数据、结构等。
  • MongoDB 是免费使用的(MongoDB分 社区版[在所有环境下都免费] 和 企业版[在开发环境免费,生产环境收费]两个版本)
  • MongoDB 数据库具有可伸缩性灵活性,可帮助你快速查询索引你需要数据。

注:由于MongoDB 官网要求登录以后才能进入下载页面(否则即便进入下载页面也会重定向到用户登录页面),所以如果想要下载官方原版的MongoDB数据库,要先登录(没有账户可以注册)后再进入下载页面去下载。

1、官方下载地址:

https://www.mongodb.com/try/downloadicon-default.png?t=N7T8https://www.mongodb.com/try/download

在这里根据自己的需要,选择下载对应系统的MongoDB数据库版本(:在MongoDB版本中,是偶数:如3.2.x、3.4.x、3.6.x表示正式版【可用于生产环境】,是奇数:3.1.x、3.3.x、3.5.x表示开发版,而OS系统版本:自动给你推荐你当前适合的MongoDB数据库版本)。

然后点击 Download按扭后,进入下载页面:

注:进入上面这个下载页面后,会自动开始下载!!!(如没反应就F5 刷新一下当前页面,由于是外网,所以就耐心点吧!)。

2、其他下载方式:除了上面的下载方式以外,也可以试试下面的下载链接!!
  1. MongoDB Windows系统64位下载地址:Try MongoDB Atlas Products | MongoDB
  2. MongoDB Windows系统32位下载地址:Try MongoDB Atlas Products | MongoDB
  3. MongoDB 全部版本下载地址:Try MongoDB Atlas Products | MongoDB

MongoDB的安装非常简单,在下载完成后,接直接双击下载好的MongoDB安装包,进入MongoDB安装界面,点击Next下一步、同意条款、选择安装路径 和 日志路径、勾选是否安装MongoDB Compass(MongoDB数据库图形管理工具,类似MySQL的Navicat ),其它的步骤一直点下一步直到完成安装就OK啦。

点击开始安装:

选择MongoDB安装方式:

选择MongoDB安装路径:

注意:MongoDB 3.x系列版本的数据库,在安装成功后,每次在使用前都需要手动启动MongoDB服务!

 

现在:MongoDB 4.x系列版本的数据库,在安装时默认安装(选中了 Install MongoD as a Service)服务 ,就是在开机时自动启动 MongoDB 服务,然后就可以直接使用啦!

 

MongoDB 4.x安装具体如下所示:

选择MongoDB数据库图形化界面管理工具:

然后就一直下一步、Next 直到 Flnish 安装完毕,到此就MongoDB就安装结束啦!

1、下载地址:MongoDB Compass Download | MongoDB

2、注意事项:在MongoDB Compass选择下载时,可选择对应的系统版本(这里以windows系统为例):
  • zip绿色版(免安装,解压后就可以用)
  • msi安装版(Windows Installer的数据包,需要一步步安装到本地)
  • exe安装版(可执行文件,需要一步步安装到本地)

下面是Msi安装版,安装界面:

MongoDB Compass的安装没有什么好配置的,直接点击 Next 至到 Flnish 就安装结束啦!

MongoDB数据库的图形化的数据库管理工具,可以在这里面对数据进行很友好的操作:如查看、编辑、导入、导出等相应的。

1、MongoDB v3.6版安装目录的文件
 

2、 MongoDB v4.4版安装目录文件
 

1、配置MongoDB全局环境变量(就是在电脑中任何地方都可以合用mongo、mongod等命令)!

注:配置完成后,重启电脑, 环境变量才生效哦!重启后,我们就能在系统的任何位置,使用mongo命令了:

如:查看MongoDB数据库存的版本:

 
2、MongoDB数据库中的常用述语:

1、在MongoDB中,数据库是以文件形式存储的,数据库目录中存储了相应的数据库!

2、在MongoDB中,把传统数据库中的 "表" 叫作:Collections "集合"

3、在MongoDB中,向集合存储数据时,直接以JSON格式,进行存储 和 读取操作!

4、在MongoDB中,集合中的数据内容叫作:Documents "文档"

3、进入MongoDB数据库的语法环境:

在命令窗口中,输入 mongo 回车, 就进入了MongoDB数据库的语法环境了!

注:安装好MongoDB数据库后,默认是【非授权模式】(也就是不需要任何权限验证,直接在命令窗口中输入 mongo 回车,就连接上了)。

MongoDB默认IP:mongodb://127.0.0.1

MongoDB默认端口:27017

完整的IP+端口就是:mongodb://127.0.0.1:27017mongodb://localhost:27017

由于:安装好MongoDB数据库后,默认是【非授权模式】(也就是不需要任何权限验证、不需要验证账户,直接在命令窗口中输入 mongo 回车,就可以进行相关操作),这是非常不安全的(尤其是在生产环境中,当然如果是自己玩玩的话就无所谓了)!!

所以:为了数据的安全,我们都应该去配置数据库的访问权限 和 修改默认(mongodb://127.0.0.1:27017)连接绑定IP 和 端口号!!

1、创建MongoDB管理用户:
  • 创建超级管理账户:
 
  • 创建普通管理账户:
 
  • MongoDB数据库账户配置常用命令:
 
  • MongoDB数据库中的内置角色:
 
2、修改MongoDB数据库配置:

MongoDB数据库的相关配置信息,是存储在mongodb安装目录bin目录中的mongod.cfg文件中,

注:在修改mongod.cfg文件之前,请记得要先备份一份哦,以防万一!!

如上图所示,开启数据库访问权限验证:修改完成后,记得要保存哦!!

注:前面代有 # 的配置项,表示被注释(无效)状态的)

 
3、重新启动MongoDB服务

注:只要修改了mongod.cfg文件,一定要重新启mongodb服务后才会生效哦!!

打开服务步骤:

此电脑(计算机) 右键 -> 管理 -> 服务和应用程序 -> 服务 -> MongoDB Server (MongoDB) -> 右键 点击 重新启动(E)或 点击左侧的(重启动此服务)

或者 Win + R 运行 services.msc 也能打开如下 服务界面,找到 MongoDB Server (MongoDB) -> 右键 点击 重新启动(E)或 点击左侧的(重启动此服务)

4、用刚才创建好的超级管理账户连接数据库:

注:重新启动mongodb服务后,用一个新的命令窗口来做操作:通过如下图所示,在配置账户权限后,直接在命令窗口中用 mongo 命令,运行相关的操作是没有响应的,只有在正确的输入账户和密码后才进行相关操作!!

连接本地MongoDB数据库:(不用指定 绑定IP 和 端口号)

连接运程MongoDB数据库:(必须指定 绑定IP 和 端口号)

5、给指定的数据库存配置账户:

这里以 myweb 数据库为例,给myweb配置一个账户,注:各个不同的数据库之间,可以创建有一个 或 多个账户,各数据库之间账户、密码都是独立的,不能互相访问!

 

6、连接指定的MongoDB数据库

这里就用上面在 myweb数据库中创建的账户来演示 连接过程!

在命令窗口中连接:

在MongoDBCompass 可视化工具中连接:

上面就是MongoDB数据库的语法环境了,现在我们可以在命令窗口中执行一些MongoDB数据库的命令、语法啦!下面例出了一些常用的MongoDB数据库操作命令!

1、查看所有数据库:
 
2、查看当前所在数据库:
 
3、查看当前所在数据库中所有集合:
 
4、查看当前数据库相关信息(名称、文档个数、视图、索引、大小等):
 
5、创建、打开、切换 数据库:
 

use 这个命令很特殊:

use命令具有打开、 切换、 创建数据库的功能:

  1. 如果打开的这个数据库存在就是打开这个数据库
  2. 如果打开的是一个不存在的数据库(没有这个数据库名字),那么就会创建一个同名的数据库。

注:在MongoDB中创建一个新的数据库时,需要向数据库中创建一个集合(collections【就像关系数据库中的表】),并且插入一条数据,这个数据库才能创建成功!!

如:往集合中插入一条数据。可以不用先创建集合,直接往里添加数据即可:

 

当命令执行后,数据库系统发现student是一个数据集合不存的,就自动创建一个集合,并随着数据的插入,数据库和集合也就真正的创建成功了。

6、删除数据库(注:这里是删除当前所在的数据库)

注:这个命令一定要慎用,一旦该命令一执行一下当前所在数据库中的所有数据都玩完了!!!,除非您想删库跑路,哈哈!!

 
7、清屏(这是Dos的命令,当窗口中的内容太多时,可以使用该命令,清除屏幕内容,保持界面清晰):
 
8、MongoDB 数据库备份与恢复,集合导入与导出:

MongoDB数据库的备份与恢复可直接在命令行工具中完成:

命令说明:

  • mongodump :     //数据库备份
  • mongorestore:    //数据库恢复(还原备份)
  • mongoimport:     //没集合导入
  • mongoexport:     //集合导出

参数说明:

  • -h 数据库IP地址: //如果是当前本机数据库,可以去掉-h
  • –port 端口号:     //如果是默认端口,可以去掉–port
  • -u 用户名:           //如果没有用户,可以不用指定-u
  • -p 密码:              //如果没有密码,可以不用指定-p
  • -d 或 -db 数据库名称:   //如果不指定则导出所有数据库
  • -c 集合名称
  • -o 文件存在路径
  • 注:每个参数前后是有空格的哦!!

–authenticationDatabase  // 制定权限认证数据库,一般为 admin

–drop     // 清空集合原有数据 慎用!!

–file xxx.json   // 指定文件

注:除了用命令进行导入导出以外,还可以用MongoDB Compass(数据库图形管理工具)进行导入导出等操作!!

使用 mongodump命令来备份 MongoDB 数据。该命令可以导出所有数据到指定目录中。mongodump 命令可以通过参数指定导出的数据量级转存的服务器。

 

使用mongorestore命令来恢复备份的数据。

 

将JSON文件形式将数据导入到数据库 指定的集合中:

项目开发有时候需要一些测试数据,如一条条的insert在繁琐了。所以,我们可以在代码编辑器中以json格式编辑好要插入的数据,以.json文件格式保存,然后导入到数据库中:

下面就是将mydata.json文件,导入到test数据库的student集合中。

 

以JSON文件形式将数据库 指定的集合导出:

 
9、操作帮助命令(列出MongoDB数据库所有的操作方法)
 
 

MongoDB数据库是以文档形式存储的,我们可以根自己的项目需要,在各自不同的项目中,指定MongoDB数据库目录(如在Vue 或 React 项目的根目录,和 package.json文件同级的目录中,创建一个名为database的文件夹)中去创建MongoDB数据库的存储目录!

1、使用 mongod 命令: 创建 或 启动 指定的MongoDB数据库!

mongod这个命令很特殊,和use命令一样,如果指定的目录中有数据库就是启动,没有就是创建并启动!

 
2、如果mongodb数据库路径太长,要输入很久,还可这样做
 

3、注意事项:

启动成功后,一定不要关闭这个命令窗口,而且这个命令窗口中也不能再做其他操作了,然后就可以在MongoDB图形化管理工具中看查数据库 或 在项目中链接使用MongoDB数据库啦。

当然在有些时候,如果想要用命令行操作MongoDB数据库的话,就要再打开一个新Dos窗口!!!

输入mongo命令就进入了MongoDB数据库的语法环境了(一定要先启动MongoDB数据库后,在进行MongoDB数据库的操作)。

1、为什么要用复制集?

为了保证数据的安全,推荐使用复制集的方式来存储数据,一般复制集节点数至少要有3个,就相当于有3个MongoDB数据库,一主两从,这样一来,即便是当主节点宕机了,其他的从节点通过投票选举(所以,一般复制集节点数量不能是偶数,不然就会出现评局的状态),选出一个新的主节点出来继续工作,而且数据也不会丢失!!

当然如果非企业、公司的 或 数据不重要的,只是自己个人玩一下的话就用不着,主要看自己的需求。

2、在windows系统下搭建MongoDB复制集:

1、新建MongoDB复制集节点目录,如:在D盘下的MongoDB目录下,新建3个文件夹,分别命名为:db1,db2,db3 用于存放复制集节点

2、分别在db1,db2,db3这3个文件夹中新建一个文件命名为:mongod.conf 内容如下:

 

注意:

 

比如:db2目录下的mongod.conf 内容如下

 
3、启动复制集节点

注:由于windows系统不支持fork,以所要分别用不同的命令窗口来启动,如这里有3个复制集节点,所有就要开3个命令窗口来打开,这样就会启动3个mongodb进程,并且启动后不能关闭该命令窗口,否则进程也会随之结束!!

 

通过以上命令启动好3个复制集节点后,可以在命令窗口中查看,mongodb的进程情况

 
4、关联复制集节点

上面虽然创建了3个复制集节点,但它们之间还没有任何关系,还是相互独立的,所以要将们关联起来,当有数据入后3个节点都会有数据,这样一来,即便是当主节点宕机了,其他的从节点通过投票选举(所以,一般复制集节点数量不能是偶数,不然就会出现评局的状态),选出一个新的主节点出来继续工作,而且数据也不会丢失!!

  1. 再新开一个命令窗口操作,在windows系统中查看当前hostname 主机名
 
 
  1. 设置复制集主节点,在没有设置复制集主节点之前,各个节点都是一样平级的,但一般情况下,我们都将第1个端口号的节点做为主节点!
 
  1. 查看复制集节点状态信息 和 配置信息
 
  1. 分别关联端口为28018 和 28019 的这两个复制集节点
 

到此复制集节点的关联工作就完成了!

5、查看从节点是否正常同步数据

1、先在28017主节点上插入一条数据

 

writeConcern 数据写入配置:

注意:默认情况下插入数据时只要写入主节点(不管是否同步到从节点)就返回提示数据写入成功。

所以:如果要保证在写入数据时,所的的节点 或 指定的节点都落盘(成功写入)后,才返回提示数据写入成功。

writeConcern 决定一个写操作落到多少个节点上才算成功。writeConcern 的取值包括:

  • 0 表示发起写操作,不关心是否成功;
  • 1~集群最大数据节点数 表示写操作需要被复制到指定节点数才算成功;
  • majority 表示写操作需要被复制到大多数节点上才算成功。 发起写操作的程序将阻塞到写操作到达指定的节点数为止
 

writeConcern注意事项:

  • 虽然多于半数的 writeConcern 都是安全的,但通常只会设置 majority,因为这是 等待写入延迟时间最短的选择;
  • 不要设置 writeConcern 等于总节点数,因为一旦有一个节点故障,所有写操作都 将失败;
  • writeConcern 虽然会增加写操作延迟时间,但并不会显著增加集群压力,因此无论 是否等待,写操作最终都会复制到所有节点上。设置 writeConcern 只是让写操作 等待复制后再返回而已;
  • 应对重要数据应用 {w: “majority”},普通数据可以应用 {w: 1} 以确保最佳性能;

2、在从节点28018 或 28019中查看是否有数据同步过来

 

1、什么是数据模型?

数据模型是一组由符号、文本组成的集合,用以准确表达信息,达到有效交流、沟通的目的。

2、数据模型的三要素:

实体、属性、关系

基础的建模实际上就是将实体、属性、关系三者进行要机的联关起来,其表达方式有:1:1 (一对一),1 :N (一对多),M :N (多对多),然后再根据范式NF 一般选用第三范式(3NF)来进行建模;

而在MongoDB的文档中基本上都可以用内嵌方式、数据方式来完成这些关系的表述,就不用像传统的关系型数据库去做分表存储啦!而且:MongoDB也可以进行分集合(表)存储的哦!!!;

 

上面这种处理方式虽然好用,但是 例如:当hobby子文档数据量很多时,数据就会很冗余,好的是MongoDB从3.2版开始也可以进行分集合(表),将hobby文档抽离成一个独立的集合user_hobby,然后进行关联查询!

 

通过引用方式 aggregate聚合框架中的 $lookup操作符 来进行关联查询

例如:users集合 和 user_hobby集合 将这两个集合进行关联查询

 
3、什么时候才应该使用引用方式(拆分集合(表)):
  • 当内嵌文档(子文档)太大时,如数量很多 或 占用空间超过16MB时(目前最大限度16MB);
  • 当内嵌文档 或 数组等元素会频繁更新修改时;
  • 当内嵌数组中的元素数量是未知的(后期可以会持续增加,没有封顶)时;
4、MongoDB 引用是有限制的:
  • MongoDB 对使用引用的集合之间并无主外键检查;
  • MongoDB 使用聚合框架的 $lookup 来模仿关联查询;
  • $lookup 只支持 left outer join
  • $lookup 的关联目标(from)不能是分片集合(表);

数据模型的三层深度:

概念模型,逻辑模型,物理模型

传统数据库模型设计:从概念到逻辑到物理,它们之间其实就是从概念模型 到 物理模型 的一个逐步细化的过程!

项目概念模型 CDM逻辑模型 LDM物理模型 PDM目的描述业务系统要管理的对 象基于概念模型,详细列出 所有实体、实体的属性及 关系根据逻辑模型,结合数据库 的物理结构,设计具体的表 结构,字段列表及主外键特点用概念名词来描述现实中 的实体及业务规则,如 “联系人”基于业务的描述 和数据库无关技术实现细节 和具体的数据库类型相关主要使用者用户 需求分析师需求分析师 架构师及开发者开发者 DBA
5、MongoDB 文档模型设计的三个误区 :
  1. 不需要模型设计
  2. MongoDB 应该用一个超级大文档来组织所有数据
  3. MongoDB 不支持关联或者事务

所以严格来讲,MongoDB 同样需要概念/逻辑建模的,文档模型设计的物理层结构可以和逻辑层类似,可以省略物理建模的具体过程。

关系模型 VS 文档模型:

项目关系数据库JSON 文档模型模型设计层次概念模型 逻辑模型 物理模型概念模型 逻辑模型模型实体表集合模型属性列字段模型关系关联关系,主外键内嵌数组,引用字段
1、插入数据:insert()、insertOne()、insertMany()

语法:

db.<集合>.insertOne(<JSON对象>)

db.<集合>.insertMany([<JSON 1>,<JSON 2>,<JSON 3>,…])

注:插入数据时不需要专门去创建集合(表),因为插入数据时会自动创建集合!!

  • 插入数据:这里以student集合【学生表】为例!
 
2、查找数据:find()、findOne()

语法:

db.<集合>.find(<查询条件>)

find()还支持合用 field.sub_field 的形式查询子文档

  • 查找数据,如果find()中没有参数,那么将列出这个集合中的所有文档:注:find()返回的是游标
 
  • 指定查询返回的字段 (例如:查询学生集合(表)中所有的女同学,不显示id,只显示名字 和 年龄  <字段名:0不显示,1显示>,或者:<字段名:false不显示,true显示>)
 
  • 子文档查询
 

条件查询:

  • 精确条件查询:
 
  • 模糊条件查询:
 
  • 条件查询对照:(MongoDB 与 传统数据库 比对)
SQL(MySql、SqlServer)MQL(MongoDB)a = 1等于a <> 1不等于a > 1大于a >= 1大于等于a < 1小于a <= 1小于等于

逻辑查询:

  • 多条件查询
 
  • 逻辑与:$and
 
  • 逻辑或:$or (只需满足1个条件),查找所有年龄是9岁,或者11岁的学生
 
  • 查询逻辑对照:(MongoDB 与 传统数据库 比对)
SQL(MySql、SqlServer)MQL(MongoDB)a = 1 AND b = 1并且a =1 OR b = 1或a IS NULL不存在a IN (1,2,3)存在

聚合查询:

MongoDB聚合框架(Aggregation Framework)是一个计算框架,它可以:

  1. 可作用在一个 或  几个集合上
  2. 对集合中的数据进行一系列的运算
  3. 可将数据转化为所期望数据形式,如(数学计算,统计,类型,格式处理等)

对效果而言,聚合查询相录于传统SQL查询中的,ORDER BY,GROUP BY,LIMIT,LEFT OUTER JOIN,AS等!

  • 聚合查询对照:(MongoDB 与 传统数据库 比对)
步骤作用SQL等价运算符$match过滤WhERE$project投影AS$sort排序ORDER BY$group分组GROUP BY$skip结果限制SKIP$limit结果限制LIMIT$lookup左外连接(多表操作)LEFT OUTER JOIN$graphLookup图搜索N/A$facet分面搜索N/A$bucket分面搜索N/A$unwind展开数组N/A
  • 升降排序查找:(1 升序, -1 降序)
 
 

// 另一种and:[{“score”:60 , “age”:12}, {“score”:80 , “age”:15}]})

 
 到此这篇mongodb数据库安装教程(mongodb4.2安装教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • 小米手机数据迁移realme(小米手机数据迁移到苹果手机)2025-05-02 22:09:08
  • spss数据分析如何做(spss数据分析做的不好怎么办呢)2025-05-02 22:09:08
  • 动态库存表数据不能自动更新(动态库存表数据不能自动更新怎么办)2025-05-02 22:09:08
  • 自动驾驶数据安全算法(自动驾驶数据安全算法有哪些)2025-05-02 22:09:08
  • 达梦客户端连接数据库命令(达梦数据库连接报系统错误)2025-05-02 22:09:08
  • msp432p401R单片机用什么型号的数据线(msp430f149单片机引脚说明)2025-05-02 22:09:08
  • 英文数据库是全文数据库(英文数据库是全文数据库吗)2025-05-02 22:09:08
  • 大数据一般是学的什么专业(大数据主要学什么专业)2025-05-02 22:09:08
  • pyspark读取mysql(pyspark读取mysql数据)2025-05-02 22:09:08
  • 数据库初学者做题网站哪个好用点(数据库软件哪个适合初学者)2025-05-02 22:09:08
  • 全屏图片