【学习笔记】什么是MongoDB

news2024/10/19 0:56:46

文章目录

  • MongoDB 简介
    • 体系结构
    • 数据模型
    • MongoDB 的特点

MongoDB 简介

学习一个东西就跟认识一个人一样,下面有情MongoDB来做个自我介绍

在这里插入图片描述

大家好,俺是MongoDB,是一个开源高性能无模式的文档型数据库,当初的设计俺就是用于简化开发方便扩展

俺是NoSQL数据库产品中的一种,是最像关系型数据库(MySQL)的非关系型数据库。

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

俺的记录是一个文档,它是一个由字段值对(field:value)组成的数据结构。

俺的文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,俺的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

体系结构

听完MongoDB的自我介绍,我稍微对他有了一定的了解。为了更加方便我们的理解,有请出我们的老成员Mysql

Mysql和MongoDB的对比:

在这里插入图片描述

Mysql中有多个数据库,数据库中包含多个数据表,数据表中包含多个行数据。

而MongoDB中同样有多个数据库,但是不同的是,数据库中包含的是集合,集合中包含多个文档

在这里插入图片描述

我们知道mysql中有字段这一概念,MongoDB与之不同的是这一概念。

区别最大的一点莫过于表连接了,mysql中支持table joins来实现表连接,MongoDB 没有像关系型数据库那样直接的表连接概念。

MongoDB是通过嵌入式文档来代替多表连接。

在这里插入图片描述

数据模型

MongoDB的最小存储单位就是文档(document)。文档(document)对应于关系型数据库的行。数据在MongoDB中以BSON(Binary-JSON)文档的格式存储在磁盘上

BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称BinaryJSON.BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。

在这里插入图片描述

MongoDB 的特点

那么讲了这么多了,MongoDB有什么特点吗?

在这里插入图片描述

MongoDB主要有如下特点:

  1. 高性能:
    MongoDB提供高性能的数据持久性。特别是对嵌入式数据模型的支持减少了数据库系统上的I/O活动。索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键,(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 020 应用)mmapv1、wiredtiger、mongorocks(rocksdb)、in·memory等多引擎支持满足各种场景需求Gridfs解决文件存储的需求。
  2. 高可用性:
    MongoDB的复制工具称为副本集(replicaset),它可提供自动故障转移和数据冗余。
  3. 高扩展性:
    MongoDB提供了水平可扩展性作为其核心功能的一部分。分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展)从3.4开始,MongoDB支持基于片键创建数据区域。在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。
  4. 丰富的查询支持:
    MongoDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。
  5. 其他特点:如无模式(动态模式)、灵活的文档模型

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记(202410)

课程:Generative AI for Software Development 链接:吴恩达同步最新AI专业课,第54讲:用人工智能做软件开发--Generative AI for Software Development_哔哩哔哩_bilibili 时间:2024-10-12 至 概述:使用C…

强化学习与深度强化学习:深入解析与代码实现

个人主页:chian-ocean 文章专栏 强化学习与深度强化学习:深入解析与代码实现 强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过智能体(agent)与环境(environment&am…

【Linux】Linux常见指令及权限理解

1.ls指令 语法 : ls [ 选项 ][ 目录或文件 ] 功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -a 列出目录下的所有文件,包括以 . 开头的隐含文…

无人机视角下火灾检测数据集 共12736张 标注文件为YOLO适用的txt格式。已划分为训练集、验证集、测试集。类别:Fire yolov5-v10通用

无人机视角下火灾检测数据集 共12736张 标注文件为YOLO适用的txt格式。已划分为训练集、验证集、测试集。类别:Fire yolov5-v10通用 无人机视角下火灾检测数据集 共12736张 标注文件为YOLO适用的txt格式。已划分为训练集、验证集、测试集。类别:Fire yol…

【Vue】Vue3.0(十)toRefs()和toRef()的区别及使用示例

上篇文章:Vue】Vue(九)OptionsAPI与CompositionAPI的区别 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年10月15日11点13分 文章目录 toRefs()和toRe…

基于朴素贝叶斯的中文垃圾短信分类(含ui界面)

完整代码如下 基于朴素贝叶斯的中文垃圾短信分类、垃圾邮件分类。 可用于机器学习课程设计等。 import warnings warnings.filterwarnings(ignore) import os os.environ["HDF5_USE_FILE_LOCKING"] "FALSE" import pandas as pd import numpy as np fro…

LeetCode1004.最大连续1的个数

题目链接:1004. 最大连续1的个数 III - 力扣(LeetCode) 1.常规解法(会超时) 遍历数组,当元素是1时个数加一,当元素是0时且已有的0的个数不超过题目限制时,个数加一,若上…

重生之我爱上了k8s!

内容不全,待补充中...... 目录 一、k8s的部署 1.1.集群环境初始化 1.1.1.所有主机禁用swap 1.1.2.安装k8s部署工具 1.1.2.所有节点安装cri-docker 1.1.3.在master节点拉取K8S所需镜像 1.1.4.集群初始化 1.1.5.其他两台主机加入集群 1.1.6.安装flannel网络…

微积分复习笔记 Calculus Volume 1 - 2.5 Precise Definition of a Limit

2.5 The Precise Definition of a Limit - Calculus Volume 1 | OpenStax

Python基础——类与对象

类与对象的理解: 在程序中我们将类看作是设计图纸,对象则是根据这个图纸生产的产品。面向对象编程就是使用对象编程,在类中我们定义成员属性和方法。 来看下面这个例子,创建student类,定义对象并对属性赋值。 class S…

Golang | Leetcode Golang题解之第480题滑动窗口中位数

题目: 题解: type hp struct {sort.IntSlicesize int } func (h *hp) Push(v interface{}) { h.IntSlice append(h.IntSlice, v.(int)) } func (h *hp) Pop() interface{} { a : h.IntSlice; v : a[len(a)-1]; h.IntSlice a[:len(a)-1]; return v }…

十大云手机排行榜:哪个云手机更好用?

近些年,市场上涌现出许多云手机产品,不同产品适合的应用场景也各不相同。在选用云手机之前,企业和个人用户需要了解它们的功能、特点以及适用的场景。本文将对当前主流的云手机进行对比,帮助大家挑选出最适合的云手机产品。 1. 红…

200Kg大载重多旋无人机价格高昂技术分析

200Kg大载重多旋无人机作为一种高度专业化的航空工具,其价格相较于普通无人机显著较高,这主要是由于其在技术设计和生产过程中所需的高要求所致。以下是对其价格高昂的技术分析: 一、高性能材料与结构设计 1. 高强度轻量化材料:…

KafKa 集群【docker compose】

文章目录 主机准备部署编辑 docker-compose.ymlcontrollerbroker生成cluster_id 一篇完整的 docker-compose.yml 文件查看集群状态使用 kafka-ui 查看拉取 kafka-ui添加集群查看集群状态 使用命令行查看 配置讲解controllerbroker 主机准备 IPcontroller idbroker id192.168.1…

FreeRTOS的队列管理

“队列”提供了一种任务到任务、任务到中断和中断到任务的通信机制。 队列特性 数据存储 队列可以容纳有限数量的固定大小的数据项。队列可以容纳的最大项目数称为其“长度”。每个数据项的长度和大小都是在创建队列时设置的。 队列通常用作先进先出(FIFO&#xf…

游戏逆向基础-跳出游戏线程发包

附加游戏后下断点 bp ws2_32.send send函数断下后,可以看到数据地址每次都一样 可以说明这个游戏是线程发包,所以直接在数据窗口中转到这个地址,然后对这个地址下硬件写入断点。 下了硬件写入断点后可以一层一层往上面跟,确定写…

RHCE--at,crontab例行性工作

一:安装at (1)配置yum仓库:以配置网络源举例: 先在/etc/yum.repos.d/ 目录下创建一个以.repo结尾的文件 vim /etc/yum.repos.d/aliyun.repo 写入可以在阿里云镜像站查找appstream和baseos的地址阿里巴巴开源镜像站…

tensorflow案例2--猴痘病识别,一道激活函数的bug

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 文章目录 1、bug2、模型构建1、数据处理1、导入库2、查看数据目录3、加载数据4、数据展示 2、内存优化3、模型构建4、模型训练1、超参数设置2、模型训练 5、结…

通过前端UI界面创建VUE项目

通过前端UI界面创建VUE项目,是比较方面的一种方式,下面我们详细分析一下流程: 1、找到合适目录 右键鼠标,点击在终端打开 2、开始创建 输入 vue ui 浏览器弹出页面 3、点击Create项目 显示已有文件列表,另外可以点击…

Docker部署一款小巧又强大的的自托管网站监控工具Uptime Kuma

文章目录 前言1.关于Uptime Kuma2.安装Docker3.本地部署Uptime Kuma4.使用Uptime Kuma5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 💡 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&#…