当前位置: 首页 > news >正文

MongoDB--》MongoDB数据库以及可视化工具的安装与使用—保姆级教程

目录

数据库简介

MongoDB数据库的安装

MongoDB数据库的启动

MongoDB数据库环境变量的配置

MongoDB图形化管理工具


数据库简介

在使用MongoDB数据库之前,我们应该要知道我们使用它的原因

在数据库当中,有常见的三高需求:

High performance:对数据库高并发读写的需求。

Huge Storage:对海量数据的高效率存储和访问的需求。
High Scalability && High Availability:对数据库的高可扩展性和高可用性的需求。

在数据库当中特定的具体的应用场景:

社交场景、游戏场景、物流场景、物联网场景、视频场景等。在这些应用场景中,数据操作方面的共同特点是:数据量大、写入操作频繁、价值较低的数据,对事务性要求不高。

传统的关系型数据库(如MySQL)在数据操作的 “三高” 需求以及应对Web2.0的网站场景需求面前显得力不从心,对于这种情况我们更适合使用 MongoDB 来实现数据的存储。

选择MongoDB的合适时机

应用不需要事务及复杂join支持
新应用,需求会变,数据模型无法确定,想快速迭代开发

应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至PB级别数据存储
应用要求存储的数据不丢失
应用需要99.999%高可用
应用需要大量的地理位置查询、文本查询

上述场景使用MySQL数据库也是可以完成的,但是相对MongoDB来说,可以以更低的成本解决问题(包括学习、开发、运维等成本)。

MongoDB数据库简介

MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。

MongoDB支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。MySQL与MongoDB数据库对比如下:

MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。相关概念比较如下:

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据库记录行/文档
columnfield数据库字段/域
indexindex索引
table joins表连接,MongoDB不支持
嵌入文档MongoDB通过嵌入式文档来替代多表连接
primary keyprimary key

主键,MongoDB自动将 _id 字段设置为主键

MongoDB的特点:高性能、高可用性、高扩展性、丰富的查询支持

MongoDB数据库的安装

点击官方链接:https://www.mongodb.com/ ,然后点击 Products -> Community Edition,如下:

根据自己的需要进行安装,如下:

版本选择

MongoDB的版本命名规范如:x、y、z
y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13

y为偶数时表示当前版本为稳定版,如:1.6.3、4.0.10

z是修正版本号,数字越大越好。

安装选择

msi:需要自己安装,里面的相关配置可以自己自定义。

zip:解压缩即可使用。

这里我就选择zip的方式进行下载,如下安装完成之后,解压缩完成即可:

在解压的目录中,手动建立一个目录用于存放数据文件,如:data/db (通常命名方式)

MongoDB数据库的启动

MongoDB数据库服务启动有以下两种方式:

命令行参数方式启动服务

我们进入 bin 目录,cmd进入命令行窗口,输入以下命令回车:

# 路径是相对于bin目录的相对路径
mongod --dbpath=..\data\db

启动之后,可以看到默认的地址和端口

在浏览器上输入  localhost:27017 ,如果出现以下界面说明 MongoDB 启动成功:

配置文件方式启动服务

在解压目录中新建 config 文件夹,该文件夹中新建配置文件 mongod.conf,内容参考如下:

storage:# 指定存放数据文件的全路径dbPath: D:\programming\MongoDB\mongodb-win32-x86_64-windows-6.0.4\data\db

配置完成之后,按照如下命令进行启动,仍能启动成功:

mongod -f ..\conf\mongodb.conf
# 或者
mongod --config ..\conf\mongodb.conf

更多配置信息可参考如下,或者官网: 官网 。

systemLog:destination: file# 指定日志存放文件path: 自己的路径logAppend: true
storage:journal:enabled: true# 指定存放数据文件的全路径dbPath: 自己的路径
net:bindIp: 127.0.0.1port: 27020
setParameter:enableLocalhostAuthBypass: false

配置本地 Windows MongoDB 方式设置服务

虽然上面两种方式都能开启服务,但是终端是不能关闭的,有没有办法能够将终端关掉然后服务仍然存在,如果想关闭在自行关闭即可,答案是有的,如下:

在data文件夹下新建文件夹 log (用来存放日志文件)

在bin同级目录下新建配置文件 mongo.config,并用记事本打开输入以下两条命令,如下:

dppath=D:\programming\MongoDB\mongodb-win32-x86_64-windows-6.0.4\data\db
logpath=D:\programming\MongoDB\mongodb-win32-x86_64-windows-6.0.4\data\log\mongo.log

用管理员身份打开cmd,然后切到 bin 文件地址,输入以下命令,命令中的 “MongoDB” 就是之后启动 MongoDB 服务的名字。

mongod -dbpath "D:\programming\MongoDB\mongodb-win32-x86_64-windows-6.0.4\data\db" -logpath "D:\programming\MongoDB\mongodb-win32-x86_64-windows-6.0.4\data\log\mongo.log" -install -serviceName "MongoDB"

配置完成之后,就可以使用命令来进行启动或关闭服务,如下:

# 开启服务
NET start MongoDB
# 关闭服务
NET stop MongoDB

ok,这样配置完是不是很简单,输入简单的命令就可以开启或关闭服务。

MongoDB数据库环境变量的配置

我们在使用MangoDB数据库的时候,可以先配置一下环境变量,避免后期会有一些问题的出现:

鼠标右键 我的电脑(此电脑) - 属性 - 高级系统设置 再选择 环境变量,如下:

点击编辑,然后把 MongoDB 的 bin 目录路径粘贴上去,如下:

MongoDB图形化管理工具

使用MongoDB数据库可以使用两种方式进行操作,如下:

使用 Shell 命令进行连接

注意:从6版本以后,MongoDB6不再默认安装shell工具--------Mongosh。如果需要可自行安装,ok,这里我自行安装给大家展示一下,点击安装shell的下载地址:下载地址 。

点击下载zip格式,然后解压缩得到如下文件:

bin目录下的有两个文件:mongosh.exe 文件和 mongosh_crypt_v1.dll 文件,复制这2个文件到刚刚安装MongoDB路径下的bin文件里面。如下:

至此,shell工具安装完成,我们在MongoDB数据库服务开启的状态下,win+r输入cmd,在当前终端输入 mongod,弹出以下内容后,说明我们工具安装成功,且环境变量配置成功。

继续输入mongosh,弹出以下内容后继续输入show dbs ,如下: 

ok,从现在开始你就可以操作数据库了。

使用 图像化工具 进行连接

图形化管理工具极大的方便了数据库的操作与管理,常用的图形化管理工具有很多,官方为该数据库提供的图像化工具是 Compass ,因为博主之间是玩 MySQL数据库的,个人使用的图形化工具是Navicat Preminum,个人也是极其推荐,其界面简洁功能清楚、对于新手来说易学易用,并且支持中文。其官方下载链接为:Navicat 。注意,这个工具是收费的,有免费试用14天,如果想永久使用的话,联系博主,博主会提供有效方法帮助你!

如何想使用图像化界面工具去操作数据库的话,如下选择相应的数据库:

点击之后,配置参数,点击测试连接,如下:

连接参数介绍

stand alone:独立的;shard cluster:分片集群;replica set:复制集

连接直接默认即可,一般情况下,我们连接只需要连接主库查数据,所以选择独立的这个连接方式就可以,填写好常规参数可以点击测试连接是否正常,即可连接!

因为是个人测试嘛,使用的是本地的localhost

出现如下界面说明连接成功,我们直接点击确定即可。

进入之后,我们可以点击新建查询来看看当前的数据库有多少个库,如下:

可以看看一些操作,如下:

至此,MangoDB的安装与简单使用完成,如果想了解更多数据库知识,欢迎关注我!!!

相关文章:

MongoDB--》MongoDB数据库以及可视化工具的安装与使用—保姆级教程

目录 数据库简介 MongoDB数据库的安装 MongoDB数据库的启动 MongoDB数据库环境变量的配置 MongoDB图形化管理工具 数据库简介 在使用MongoDB数据库之前,我们应该要知道我们使用它的原因: 在数据库当中,有常见的三高需求: Hi…...

JAVA 基础题

1. 面向对象有哪些特征?答:继承、封装、多态2. JDK与JRE的区别是什么?答:JDK是java开发时所需环境,它包含了Java开发时需要用到的API,JRE是Java的运行时环境,JDK包含了JRE,他们是包含…...

Flutter desktop端多屏幕展示问题处理

目前越来越多的人用Flutter来做桌面程序的开发,很多应用场景在Flutter开发端还不是很成熟,有些场景目前还没有很好的插件来支持,所以落地Flutter桌面版还是要慎重。 下面来说一下近期我遇到的一个问题,之前遇到一个需要双屏展示的…...

每天10个前端小知识 【Day 9】

👩 个人主页:不爱吃糖的程序媛 🙋‍♂️ 作者简介:前端领域新星创作者、CSDN内容合伙人,专注于前端各领域技术,成长的路上共同学习共同进步,一起加油呀! ✨系列专栏:前端…...

Elasticsearch的读写搜索过程

问题 Elasticsearch在读写数据的过程是什么样的?你该如何理解这个问题! Elasticsearch的写数据过程 客户端选择一个节点发送请求,这个时候我们所说的这个节点就是协调节点(coordinating node)协调节点对document进行了路由&am…...

线上服务质量的问题该如何去处理?你有什么思路?

线上服务质量的问题该如何去处理?你有什么思路? 目录:导读 发现线上故障 处理线上故障 修复线上故障 运营线上质量 就是前几天有个同学问了我一个问题:目前业内高可用部署主要采用方案? 看到这个问题&#xff0c…...

IOC 配置,依赖注入的三种方式

xml 配置 顾名思义,就是将bean的信息配置.xml文件里,通过Spring加载文件为我们创建bean。这种方式出现很多早前的SSM项目中,将第三方类库或者一些配置工具类都以这种方式进行配置,主要原因是由于第三方类不支持Spring注解。 优点…...

自动机,即有限状态机

文章目录一、问题来源二、题目描述三、题解中的自动机四、自动机学习五、有限状态机的使用场景一、问题来源 今天做力克题目的时候看到了字符串转换整数的一道算法题,其中又看到了题解中有自动机的概念,所以在这里对自动机做个笔记。题目链接 二、题目描…...

第一部分:简单句——第一章:简单句的核心——二、简单句的核心变化(主语/宾语/表语的变化)

二、简单句的核心变化 简单句的核心变化其实就是 一主一谓(n. v.) 表达一件事情,谓语动词是其中最重要的部分,谓语动词的变化主要有四种:三态加一否(时态、语态、情态、否定),其中…...

VSCode Markdown写作引入符合规范的参考文献

Markdown可以用来写论文,写论文的时候无一例外要用到参考文献,今天来谈谈怎么自动生成参考文献。之前讲了怎么导出的pdf,文章在这里 VSCode vscode-pandoc插件将中文Markdown转换为好看的pdf文档(使用eisvogel模板) …...

电子学会2022年12月青少年软件编程(图形化)等级考试试卷(四级)答案解析

目录 一、单选题(共15题,共30分) 二、判断题(共10题,共20分) 三、编程题(共3题,共50分) 青少年软件编程(图形化)等级考试试卷(四级) 一、单选题(共15题,共30分) 1. 运行下列程序…...

JUC并发编程学习笔记(一)——知识补充(Threadlocal和引用类型)

强引用、弱引用、软引用、虚引用 Java执行 GC(垃圾回收)判断对象是否存活有两种方式,分别是引用计数法和引用链法(可达性分析法)。 **引用计数:**Java堆中给每个对象都有一个引用计数器,每当某个对象在其它地方被引用时,该对象的…...

2022级上岸浙理工MBA的复试经验提炼和备考建议

在等待联考成绩出来的那段时间,虽然内心很忐忑,但还是为复试在积极的做准备,虽然也进行了估分大概有201分,但成绩和分数线没下来之前,只能尽量多做些一些准备把。因为笔试报了达立易考的辅导班,对于浙江理工…...

人大金仓数据库索引的应用与日常运维

索引的应用 一、常见索引及适应场景 BTREE索引 是KES默认索引,采用B树实现。 适用场景 范围查询和优化排序操作。 不支持特别长的字段。 HASH索引 先对索引列计算一个散列值(类似md5、sha1、crc32),然后对这个散列值以顺序…...

20230211英语学习

Six Lifestyle Choices to Slow Memory Decline 研究发现,生活方式真能帮助记忆“抗衰”? A combination of healthy lifestyle choices such as eating well, regularly exercising, playing cards and socialising at least twice a week may help sl…...

5G图书推荐

无线通信专业书籍推荐 1.无线通信原理:基于MATLAB的实践,作者:李珊,出版社:清华大学出版社 2.无线通信系统:原理、设计与应用,作者:肖宇,出版社:电子工业出版…...

【Linux下代码调试工具】gdb 的基本使用

gdb的基本使用前言准备gdb工具调试须知gdb的基本指令进入调试退出调试显示代码及函数内容运行程序给程序打断点查看断点位置断点使能取消断点逐过程调试逐语句调试运行到下一个断点查看变量的值变量值常显示取消变量值常显示前言 在主页前面的几篇文章已经介绍了Vim编辑器及Ma…...

UART和RS232、RS485的联系和区别、以及对软件编程的影响

1、串口、UART、RS232、RS485概念的理解 (1)狭义上的串口:指的是串口协议,就是时序图、数据收发先后顺序等,是抽象出来的协议; (2)广义上的串口:指的是符合串口协议的接口,UART、RS232、RS485在实际工作中都…...

ajax是什么?咋实现的

创建交互式网页应用的网页开发技术 再不重新加载整个网页的前提下,与服务器交换数据并且更新部分内容 简单来说就是无页面刷新的数据交互 通过创建xmlhttprequest对象向服务器异步发送请求从而获取数据,然后操作dom更新内容 1,创建xmlhttpr…...

AI推理计算框架中的内存优化

背景 内存管理是AI计算中非常重要的一部分。我们希望模型计算时占用内存尽可能小,这样我们训练或推理时就可以用更大的batch size使其尽快收敛,或者提高吞吐率。又或者让我们可以使用参数更多、或更复杂的模型从而达到更好的准确率。由于现代深度学习模…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

Selenium常用函数介绍

目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...

macOS 终端智能代理检测

🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...