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的安装配置教程(很详细,你想要的都在这里)icon-default.png?t=N7T8https://blog.csdn.net/weixin_43405300/article/details/120017878

Linux安装MongoDB

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

        需要注意的是:

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

Linux CentOS7 环境下安装 MongoDBicon-default.png?t=N7T8https://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及使用icon-default.png?t=N7T8https://blog.csdn.net/packge/article/details/126539320

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

Docker安装icon-default.png?t=N7T8https://blog.csdn.net/qq_47959003/article/details/123957011

三、连接测试

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

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

  • 如果设置了账号密码

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

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

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

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

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

相关文章

细说雪花算法

文章目录 背景一、介绍二、结构三、数据库分表1.垂直分表2.水平分表(1)主键自增(2)取模(3)雪花算法(主角登场) 总结 背景 需要选择合适的方案去应对数据规模的增长,以应…

kibana操作elasticsearch(增删改查)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

论文阅读 Memory Enhanced Global-Local Aggregation for Video Object Detection

Memory Enhanced Global-Local Aggregation for Video Object Detection Abstract 人类如何识别视频中的物体?由于单一帧的质量低下,仅仅利用一帧图像内的信息可能很难让人们在这一帧中识别被遮挡的物体。我们认为人们识别视频中的物体有两个重要线索&…

vue3学习源码笔记(小白入门系列)------KeepAlive 原理

目录 说明组件是如何被缓存的,什么时候被激活对于KeepAlive 中组件 如何完成激活的对于KeepAlive 中组件 如何完成休眠的 总结 说明 Vue 内置了 KeepAlive 组件,实现缓存多个组件实例切换时,完成对卸载组件实例的缓存,从而使得组…

信号隔离的利器:光耦合器的应用与重要性 | 百能云芯

在当今数字化和电子技术的时代,各种电子设备和电路在我们的日常生活和工作中扮演着至关重要的角色。为了使这些设备正常运行并确保它们之间的相互作用,一种叫做光耦合器(CTR)的元件扮演着重要的连接桥梁角色。接下来云芯将带您深入…

abap中程序跳转(全)

1.常用 1.CALL TRANSACTION 1.CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK [AND SKIP FIRST SCREEN]. 其中ta为事务码tcode使用时要打单引号() 2. CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK USING bdc_tab { {[MODE mode] [UPDATE u…

基于tornado BELLE 搭建本地的web 服务

我的github 将BELLE 封装成web 后端服务,采用tornado 框架 import timeimport torch import torch.nn as nnfrom gptq import * from modelutils import * from quant import *from transformers import AutoTokenizer import sys import json #import lightgbm a…

FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现 UDP 网络视频传输,提供工程和QT上位机源码加技术支持

目录 1、前言版本更新说明免责声明 2、我这里已有的以太网方案3、设计思路框架视频源选择OV5640摄像头配置及采集动态彩条UDP协议栈UDP视频数据组包UDP协议栈数据发送UDP协议栈数据缓冲IP地址、端口号的修改Tri Mode Ethernet MAC1G/2.5G Ethernet PCS/PMA or SGMIIQT上位机和源…

【动态规划】392. 判断子序列、115. 不同的子序列

提示:努力生活,开心、快乐的一天 文章目录 392. 判断子序列💡解题思路🤔遇到的问题💻代码实现🎯题目总结 115. 不同的子序列💡解题思路🤔遇到的问题💻代码实现&#x1f3…

将Sketch文件转化为PSD文件的简单在线工具!

设计工作不仅需要UI设计工具,还需要Photoshop。常见的UI设计工具Sketch与Photoshop软件不兼容。如果你想在实际工作中完成Sketch转psd,你需要使用其他软件进行转换。但是在转换过程中容易丢失文件,导致同样的工作需要重复多次才能完成&#x…

模型量化笔记--KL散度量化

KL散度量化 前面介绍的非对称量化中,是将数据中的min值和max值直接映射到[-128, 127]。 同样的,前面介绍的对称量化是将数据的最大绝对值 ∣ m a x ∣ |max| ∣max∣直接映射到127。 上面两种直接映射的方法比较粗暴,而TensorRT中的int8量化…

气膜式仓库:灵活创新,助力企业储存与物流升级

气膜式大空间仓库的建设不受地面条件限制,为企业提供了极大的便利。合理的仓储系统不仅是企业和厂商提高货品流动速度、确保生产、储运、配送顺利进行的关键,也是现代物流发展的需要。传统建筑在使用中存在一些不足,因此,我们需要…