MongoDB实战之快速开始

写在前面:以前使用mongo只了解了个增删改查,而且没有集成springboot里面使用过。最近花了几小时系统的学习了一遍MongoDB,为了巩固和方便查找,在此记录下学习过程。

一、MongoDB的简介

MongoDB 是一个高性能、高可用性和易扩展的 NoSQL 数据库。与传统的关系数据库(如 MySQL 或 PostgreSQL)相比,MongoDB 使用 JSON-like 的文档格式(BSON)来存储数据,这使得数据模型更为灵活。

主要特点:

  1. 文档导向:MongoDB 存储的数据是 BSON(二进制 JSON)文档,具有动态模式,这意味着文档中可以嵌套其他文档和数组。

  2. 高性能:因为其内存数据存储和优化的查询性能,MongoDB 提供了高速读写操作。

  3. 高可用性:通过副本集(Replica Sets)实现数据的高可用性。

  4. 水平扩展:MongoDB 可以通过分片(Sharding)在多台机器上分布数据,以支持非常大的数据集。

  5. 丰富的查询语言:MongoDB 提供了一组丰富的查询操作和索引,让你能够方便地搜索、排序和过滤数据。

  6. 支持地理空间数据:你还可以用它进行地理空间查询。

  7. 开源:MongoDB 是开源软件,任何人都可以下载和使用,也有多种商业版本提供额外的功能和支持。

用途:实时分析和数据可视化、移动应用、内容管理系统、IoT 应用、电子商务等。

上面提到了一个BSON,什么是BSON?

BSON(Binary JSON 的缩写)是一种二进制编码的序列化 JSON-like 文档的格式。MongoDB 使用 BSON 作为数据存储和网络传输的格式。BSON 不仅支持 JSON 常见的数据类型(例如数值、字符串和布尔值),还支持更多复杂的类型,如日期和二进制数据。

BSON 的主要特点:

  1. 类型丰富 :除了基本的 JSON 类型(字符串、数值、数组、对象、布尔值、null)之外,BSON 还支持其他几种数据类型,包括日期和二进制数据。

  2. 轻量级:虽然 BSON 比纯 JSON 略大,但它仍然是一个非常轻量级的存储格式。

  3. 高效:BSON 格式设计成易于扫描和解析,这有助于提高 MongoDB 的读写性能。

  4. 可遍历:由于其结构化的格式,BSON 文档可以被快速遍历,这对于数据库查询操作是非常有用的。

  5. 支持内嵌文档和数组:这让数据更加灵活和多层次,非常适合文档导向的数据库模型。

个人理解:浅显看就是JOSN的加强版,传输形式还是JSON的{key:value}形式,mongo拿到这个之后,key就作为了字段名,value就作为了值。

二、安装与搭建

快速开始的第一步就是安装mongoDB了,一般很多人因为电脑本身环境问题,遇到一些奇奇怪怪的坑。所以我主要说明三种安装方式,以及我最推荐的方式。前人之述足矣,我就不在造轮子了,直接挂链接。

win10系统安装MongoDB

这篇博客详细的介绍了MongoDB的安装过程,并配置成了自启动服务,非常方便,亲测有效。

MongoDB的安装配置教程(很详细,你想要的都在这里)https://blog.csdn.net/weixin_43405300/article/details/120017878

Linux安装MongoDB

这篇博客详细的介绍了MongoDB的Linux安装过程,并配置成了自启动服务,非常方便,亲测有效。

需要注意的是:

  • 如果使用的虚拟机,一定要记得放开端口;如果是云服务器,一定要配置防火墙安全组端口。
  • 测试远程连接拿navicat一样的用法。
  • 配置完成Linux的环境后一定要source /etc/profile刷新环境

Linux CentOS7 环境下安装 MongoDBhttps://blog.csdn.net/chenlixiao007/article/details/110206062

Docker容器安装MongoDB(强烈推荐)

为什么推荐使用Docker容器安装,因为通过 Docker,你可以用单一命令轻松地下载、安装和运行 MongoDB,无需进行复杂的安装和配置。

需要注意:

  • 运行容器需要挂载目录和端口映射,下面这篇文章docker run 的时候指定了,所以也可以无脑跟。
  • 还是一样,需要注意服务器的防火墙端口一定要放开,放开之后要记得刷新。
    • sudo firewall-cmd --permanent --add-port=27017/tcp (设置端口)
    • sudo firewall-cmd --reload(刷新防火墙)
    • sudo firewall-cmd --list-all(查看安全组)

docker安装mongoDB及使用https://blog.csdn.net/packge/article/details/126539320

如果还没有安装docker的话,传送门如下:

Docker安装https://blog.csdn.net/qq_47959003/article/details/123957011

三、连接测试

不论是哪一种安装完成之后,用客户端软件登录的方式都是一样的。

  • 如果你没有设置密码,验证部分就直接None就好:
  • 如果设置了账号密码

这里首先需要说明一个误区,密码和传统数据如mysql等有些区别:

mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。上面这个验证数据库也就是你指定存储用户名和密码的数据库。

刚开始了解MongoDB权限管理这方面确实有些摸不着头脑,因此我在MongoDB系统学习专栏中详细写了一些关于这方面的心得。

相关推荐
冒泡的肥皂2 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.3 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
anghost1505 小时前
基于单片机的智能声控窗帘
单片机·嵌入式硬件·mongodb
薛晓刚6 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队6 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光6 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓12016 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
染落林间色6 小时前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
颜颜yan_7 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4537 小时前
管理项目服务器连接数据库
数据库·后端