【学习笔记】什么是MongoDB

news/2024/10/18 21:04:13/

文章目录

  • 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.ppmy.cn/news/1540090.html

相关文章

JS逆向应该学习哪些基础知识?

JS逆向工程中,需要掌握的基础知识领域如下: ‌JavaScript基础‌: 变量、数据类型、运算符和表达式控制流语句(如if-else、循环等)函数和闭包对象和数组异步编程(Promises、async/await)DOM操作和…

基于python的网络爬虫实现代码

以下是一个基于Python的简单网络爬虫实现示例,以爬取豆瓣电影Top250的电影名称和评分为例: 安装必要的库 我们需要安装requests库用于发送HTTP请求获取网页内容,BeautifulSoup库用于解析HTML页面。可以使用pip install requests beautifulsou…

Spring Boot构建高效医疗病历B2B交互平台

第3章 需求分析与可行性分析 3.1 需求分析 伴随着信息行业的蓬勃发展和人们办公自动化意识的增强,学习信息管理部门的工作也越来越繁重,原来的基于B2B平台的医疗病历交互系统已经不能完全满足相关人员使用的需要。为了协助信息开展学习信息管理工作&…

九盾叉车高位显示器:重塑叉车视界,引领高位精准

在繁忙的物流与仓储中,叉车不仅是力量与效率的化身,更是精准与安全的守护者。九盾安防,以科技之名,打造叉车高位显示器,彻底革新了货叉升降的盲区挑战,为物流、仓储及码头等领域带来了前所未有的作业体验。…

中级注册安全工程师《安全生产法律法规》真题及详解

2022年中级注册安全工程师《安全生产法律法规》真题及详解 一、单项选择题 (共70题,每题1分。每题的备选项中,只有1个最符合题意) 1. 法律的制定主体不同,其法律地位和法律效力也不同。关于法律地位和效力的说法&…

提升SQL技能,掌握数据分析

提升SQL技能,掌握数据分析 在今天这个数据驱动的世界,掌握SQL(结构化查询语言)不仅是一项技术能力,更是一种职业竞争力。想象一下,如果你能像魔法师一样轻松从庞大且复杂的数据集中提取出有用的信息&#…

嵌入式硬件设计详解

嵌入式硬件设计详解 嵌入式硬件设计是一个复杂而精细的过程,它涉及将微控制器(MCU)、微处理器(MPU)或数字信号处理器(DSP)等核心芯片与其他外围电子元件(如传感器、执行器、存储器、…

opencv学习:基于计算机视觉的表情识别系统

简介 基于计算机视觉的表情识别系统,该系统能够从视频流中实时检测人脸,并识别出两种基本表情:大笑和微笑。实验通过分析人脸关键点来计算表情特征指标,从而判断表情类型。 原理 基于以下原理进行: 人脸检测&#x…