【1】MongoDB的安装以及连接

今天是2023年10月11日,MongoDB最新版本是7.0.2

最近闲着没事学习一下MongoDB这个NoSQL数据库,有时间就顺手记录一下我学习的笔记吧~
学习笔记来自黑马程序员《MongoDB基础入门到高级进阶,一套搞定mongodb》
配套资料:点此资料链接 提取码:29ad

一、MongoDB简介

  • MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。
  • 它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
  • MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

1.1、与MySQL横向对比

在这里插入图片描述

1.2、MongoDB特点

1、高性能:

MongoDB提供高性能的数据持久性。特别是,对嵌入式数据模型的支持减少了数据库系统上的I/O活动。
索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 O2O 应用)
mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求。
Gridfs解决文件存储的需求。

2、高可用性:

MongoDB的复制工具称为副本集(replica set),它可提供自动故障转移和数据冗余。

3、高扩展性:

MongoDB提供了水平可扩展性作为其核心功能的一部分。
分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展)
从3.4开始,MongoDB支持基于片键创建数据区域。在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。

4、丰富的查询支持:

MongoDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。

5、其他特点:

如无模式(动态模式)、灵活的文档模型

1.3、MongoDB数据模型

  • MongoDB的最小存储单位就是文档(document)对象。文档(document)对象对应于关系型数据库的行。数据在MongoDB中以BSON(Binary-JSON)文档的格式存储在磁盘上。
  • BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON。BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
  • BSON采用了类似于 C 语言结构体的名称、对表示方法,支持内嵌的文档对象和数组对象,具有轻量性、可遍历性、高效性的三个特点,可以有效描述非结构化数据和结构化数据。这种格式的优点是灵活性高,但它的缺点是空间利用率不是很理想。
  • Bson中,除了基本的JSON类型:string,integer,boolean,double,null,array和object,mongo还使用了特殊的数据类型。这些类型包括 date,object id,binary data,regular expression 和code。每一个驱动都以特定语言的方式实现了这些类型,查看你的驱动的文档来获取详细信息。

数据类型参考表

在这里插入图片描述

二、下载安装MongoDB(以Windows10系统为例)

有关于MogoDB的介绍大家首先到MongoDB的官网(MongoDB官网),官网界面如下:
在这里插入图片描述

1、 选择上方的产品 -> Community Server并点击

在这里插入图片描述

2、点击之后跳转到以下页面,选择Select Package

在这里插入图片描述

3、随后跳转到下载页面,可以选安装包或者解压包,建议解压安装即可

在这里插入图片描述
在这里插入图片描述

4、解压出来的样子

建议将其bin目录配置到path环境变量中
在这里插入图片描述

5、启动MongoDB

5.1、可以自己创建一个data/db目录,用于存放之后的数据

在这里插入图片描述
在这里插入图片描述

5.2、命令行启动

进入到bin目录中,打开命令行终端,执行以下命令:

mongod --dbpath=../data/db

在这里插入图片描述
启动完成,占用27017端口

5.3、当然也可以使用配置文件启动

在MongoDB根目录下面创建一个conf文件夹(就是刚刚与data平级),并进入conf目录创建一个mongod.conf文件,写入以下内容:

storage:dbPath: D:\Server\mongodb-win32-x86_64-windows-7.0.1\data\db

在这里插入图片描述
此时可以使用配置文件的方式启动MongoDB命令如下:

mongod -f D:\Server\mongodb-win32-x86_64-windows-7.0.1\conf\mongod.conf

执行完毕可以看到同样启动成功
在这里插入图片描述

三、MongoDB Compass连接MongoDB

以前的版本,在下载下来的MongoDB压缩包的bin目录下,还有mongomongosh等命令的,用于打开连接MongoDB的图形客户端的,从6.0的版本开始,MongoDB将GUI客户端单独分离出来了,需要单独下载。

3.1、下载方式1

在这里插入图片描述

3.2、下载方式2

还是进入刚刚的官网,看图:
在这里插入图片描述
在这里插入图片描述
下载完成解压
在这里插入图片描述
执行.exe文件,会自动在桌面以及开始菜单多出相应的快捷方式,方便下次运行
在这里插入图片描述
连接成功,可以查看到默认的三个库了
在这里插入图片描述
在这里插入图片描述
好了,本篇就到此结束,希望能对大家有所帮助~

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

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

相关文章

AMEYA360分享:村田电子搭载了Onsemi公司IoT设备专用IC的新Bluetooth® Low Energy模块开始量产

近年来,所有远程监控、远程控制的用例均要求具备可无线连接的电池驱动IoT设备,而长寿命电池与安全的数据通信功能是其关键。为此,在IoT边缘设备的设计方面,最大的课题是要提高功率效率和安全性。 Type 2EG由于无线与内置微处理器两…

vscode 连接ubuntu git下载缓慢

在ubuntu20.04下载: git clone https://github.com/introlab/rtabmap.git src/rtabmap 挂掉情况 export https_proxyhttp://10.10.10.176:7890export http_proxyhttp://10.10.10.176:7890 其中 10.10.10.176是我本机的ip地址,7890是我的代理后几位 如…

idea compile项目正常,启动项目的时候build失败,报“找不到符号”等问题

1、首先往上找,看能不能找到如下报错信息 You aren’t using a compiler supported by lombok, so lombok will not work and has been disabled. 2、这种问题属于lombok编译失败导致,可能原因是依赖jar包没有更新到最新版本 3、解决方案 1&#xff09…

什么是强缓存、协商缓存?

为了减少资源请求次数,加快资源访问速度,浏览器会对资源文件如图片、css文件、js文件等进行缓存,而浏览器缓存策略又分为强缓存和协商缓存,什么是强缓存?什么是协商缓存?两者之间的区别又是什么?接下来本文就带大家深入了解这方面的知识。 强缓存 所谓强缓存,可以理解…

使用postman 调用 Webservice 接口

1. 先在浏览器地址栏 访问你的webService地址 地址格式: http://127.0.0.1:8092/xxxx/ws(这个自己的决定)/xxxxXccv?wsdl 2. post man POST 访问wwebService接口 地址格式: http://127.0.0.1:8092/xxxx/ws(这个自己的决定)/xxxxXccv <soapenv:Envelope xmlns:soapenv…

Excel 快速分析

文章目录 格式化图表汇总计数 表超级表 迷你图 快捷键: Ctrl Q 先选中数据, 再按快捷键或快速分析按钮. 格式化 查看规则: 前提是先在表中添加某种规则, 再全选该表, 这样在查看规则时才会显示出这个规则. 图表 汇总 计数 表 超级表 迷你图

Android 项目增加 res配置

main.res.srcDirs "src/main/res_test" build->android->sourceSets

Zabbix第二部分:基于Proxy分布式部署实现Web监控和Zabbix HA集群的搭建

代理和高可用 一、基于zabbix-proxy的分布式监控1.1 分布式监控的作用1.2 数据流向1.3 构成组件 二、部署zabbix代理服务器Step1 前置准备Step2 设置 zabbix 的下载源&#xff0c;安装 zabbix-proxyStep3 部署数据库并将zabbix相关文件导入Step4 修改zabbix-proxy的配置文件&am…

修改ubuntu服务器fs文件最大打开数

起因 在对项目进行压测的时候&#xff0c;请求异常 java.net.SocketException: socket closed&#xff0c;查看nginx代理服务器的日志。tail -f -n500 /var/log/nginx/error.log 显示 文件打开数太多socket() failed (24: Too many open files) while connecting to upstream …

APK大小缩小65%,内存减少70%:如何优化Android App

APK大小缩小65&#xff05;&#xff0c;内存减少70&#xff05;&#xff1a;如何优化Android App 我们一直在努力为我们的Android应用程序构建MVP产品。在开发MVP产品后&#xff0c;我们发现需要进行应用程序优化以提高性能。经过分析&#xff0c;我们发现了以下可以改进的应用…

如何在 PyTorch 中冻结模型权重以进行迁移学习:分步教程

一、说明 迁移学习是一种机器学习技术&#xff0c;其中预先训练的模型适用于新的但类似的问题。迁移学习的关键步骤之一是能够冻结预训练模型的层&#xff0c;以便在训练期间仅更新网络的某些部分。当您想要保留预训练模型已经学习的特征时&#xff0c;冻结至关重要。在本教程中…

提取log文件中的数据,画图

要提取的log格式如下&#xff1a; 代码如下&#xff1a; import reimport matplotlib.pyplot as plt import numpy as npimport argparse from os import path from re import searchclass DataExtractor(object): DataExtrator class def __init__(self, infile, keyword, out…