什么是MongoDB?简介,架构,功能和示例

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

通过这个教程,我们将学习如下内容:-

  1. 什么是MongoDB?
  2. MongoDB功能
  3. MongoDB示例演示
  4. MongoDB架构的关键组件
  5. 为什么要使用MongoDB
  6. MongoDB中的数据建模
  7. MongoDB和RDBMS之间的区别
    # 什么是MongoDB?

MongoDB是面向文档的NoSQL数据库,用于大量数据存储。MongoDB是一个在2000年代中期问世的数据库。属于NoSQL数据库的类别。
# MongoDB功能

1. 每个数据库都包含集合,而集合又包含文档。每个文档可以具有不同数量的字段。每个文档的大小和内容可以互不相同。

  1. 文档结构更符合开发人员如何使用各自的编程语言构造其类和对象。开发人员经常会说他们的类不是行和列,而是具有键值对的清晰结构。
  2. 从NoSQL数据库的简介中可以看出,行(或在MongoDB中调用的文档)不需要预先定义架构。相反,可以动态创建字段。
  3. MongoDB中可用的数据模型使我们可以更轻松地表示层次结构关系,存储数组和其他更复杂的结构。
  4. 可伸缩性– MongoDB环境具有很高的可伸缩性。全球各地的公司已经定义了自己的集群,其中一些集群运行着100多个节点,数据库中包含大约数百万个文档.
    # MongoDB示例

以下示例展示在MongoDB中如何建立文档模型。

  1. _id字段由MongoDB添加,以唯一标识集合中的文档。
  2. 请注意,RDBMS中的订单数据(OrderID,Product和Quantity)通常将存储在单独的表中,而在MongoDB中,这些数据实际上是作为嵌入式文档存储在集合本身中的。这是MongoDB中数据建模方式的主要差异之一。mongo1_1
    MongoDB架构的关键组件

下面是MongoDB中使用的一些常用术语

  1. _id –这是每个MongoDB文档中必填的字段。_id字段表示MongoDB文档中的唯一值。_id字段类似于文档的主键。如果创建的新文档中没有_id字段,MongoDB将自动创建该字段。因此,例如,如果我们看到上述客户表的示例,Mongo DB将为集合中的每个文档添加24位唯一标识符。
    mongo1_2
  2. 集合 –这是MongoDB文档的分组。集合等效于在任何其他RDMS(例如Oracle或MS SQL)中创建的表。集合存在于单个数据库中。从介绍中可以看出,集合不强制执行任何结构。
  3. 游标 –这是指向查询结果集的指针。客户可以遍历游标以检索结果。
  4. 数据库 –这是像RDMS中那样的集合容器,其中是表的容器。每个数据库在文件系统上都有其自己的文件集。MongoDB服务器可以存储多个数据库。
  5. 文档 -MongoDB集合中的记录基本上称为文档。文档包含字段名称和值。
  6. 字段 -文档中的名称/值对。一个文档具有零个或多个字段。字段类似于关系数据库中的列。
    下图显示了带有键值对的字段的示例。如下的例子中,CustomerID和11是文档中定义的键值对之一。

mongo1_3
JSON –JavaScript Object Notation) 是一种轻量级的数据交换格式。这是一种可读行高易于解析的纯文本格式,用于表达结构化数据。目前,许多编程语言都支持JSON。
简要说明一下_id字段和常规collection字段之间的主要区别。_id字段用于唯一标识集合中的文档,MongoDB在创建集合时会自动添加_id字段。
为什么要使用MongoDB?
以下是一些为什么应该开始使用MongoDB的原因

  1. 面向文档的–由于MongoDB是NoSQL类型的数据库,它不是以关系类型的格式存储数据,而是将数据存储在文档中。这使得MongoDB非常灵活,可以适应实际的业务环境和需求。
  2. 临时查询-MongoDB支持按字段,范围查询和正则表达式搜索。可以查询返回文档中的特定字段。
  3. 索引-可以创建索引以提高MongoDB中的搜索性能。MongoDB文档中的任何字段都可以建立索引。
  4. 复制-MongoDB可以提供副本集的高可用性。副本集由两个或多个mongo数据库实例组成。每个副本集成员可以随时充当主副本或辅助副本的角色。主副本是与客户端交互并执行所有读/写操作的主服务器。辅助副本使用内置复制维护主数据的副本。当主副本发生故障时,副本集将自动切换到辅助副本,然后它将成为主服务器。
  5. 负载平衡-MongoDB使用分片的概念,通过在多个MongoDB实例之间拆分数据来水平扩展。MongoDB可以在多台服务器上运行,以平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。
    MongoDB中的数据建模

从“简介”部分可以看出,MongoDB中的数据具有灵活的架构。与SQL数据库不同,在SQL数据库中必须在插入数据之前声明表的架构,而MongoDB的集合不会强制执行文档结构。这种灵活性使MongoDB如此强大。
在Mongo中对数据建模时,请记住以下几点

  1. 应用程序的需求是什么–查看应用程序的业务需求,并查看应用程序所需的数据和数据类型。基于此,确保相应地确定文档的结构。
  2. 什么是数据检索模式–如果我们可能使用大量查询操作,则可以考虑在数据模型中使用索引来提高查询效率。
  3. 数据库中是否频繁发生插入,更新和删除操作–如果数据建模设计需要重新考虑使用索引或合并分片,以提高整体MongoDB环境的效率。

MongoDB和RDBMS之间的区别
下面是MongoDB和RDBMS之间的一些关键术语差异

mongo1_4
除了常见术语的差异,还包括其他一些差异:

  1. 关系数据库以强制执行数据完整性而闻名。这不是MongoDB中的明确要求。
  2. RDBMS要求首先对数据进行规范化,以便它可以防止孤立记录和重复数据的规范化,然后又需要更多表,这将导致更多表关联,从而需要更多键和索引。
    随着数据库的增长,性能可能开始成为问题。同样,这不是MongoDB中的明确要求。MongoDB灵活,不需要先对数据进行规范化。

源地址:https://www.guru99.com/what-is-mongodb.html

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
打赏
0
0
0
0
2
分享
相关文章
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
中小医院云HIS系统源码,系统融合HIS与EMR功能,采用B/S架构与SaaS模式,快速交付并简化运维
这是一套专为中小医院和乡镇卫生院设计的云HIS系统源码,基于云端部署,采用B/S架构与SaaS模式,快速交付并简化运维。系统融合HIS与EMR功能,涵盖门诊挂号、预约管理、一体化电子病历、医生护士工作站、收费财务、药品进销存及统计分析等模块。技术栈包括前端Angular+Nginx,后端Java+Spring系列框架,数据库使用MySQL+MyCat。该系统实现患者管理、医嘱处理、费用结算、药品管控等核心业务全流程数字化,助力医疗机构提升效率和服务质量。
102 4
地铁站内导航系统解决方案:技术架构与核心功能设计解析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文档可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~
117 1
CPU的定义与功能与架构
CPU(中央处理器)是计算机的核心部件,负责执行程序指令、控制数据传输和进行运算。它能处理算术与逻辑运算,并协调其他硬件协同工作。x86架构源于英特尔,适用于PC和服务器,采用复杂指令集;ARM架构则由Acorn等公司开发,广泛用于移动设备和嵌入式系统,采用精简指令集,功耗低且能效比高。
151 5
微服务——MongoDB简介和体系结构
MongoDB是一种开源、高性能的文档型数据库,采用无模式设计,数据结构灵活,以类似JSON的BSON格式存储。它将记录作为文档,由字段和值对组成,支持复杂数据类型及嵌套结构。相比MySQL,MongoDB去除了传统表结构,使用集合(Collection)存储文档,适合处理非结构化和半结构化数据,简化开发并提升扩展性。其架构更灵活,适用于高并发和大数据场景。
85 0
MongoDB简介
MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构非常松散,是一种类似于 JSON 的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。 MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
168 12
NVIDIA Triton系列02-功能与架构简介
本文介绍了NVIDIA Triton推理服务器的功能与架构,强调其不仅适用于大型服务类应用,还能广泛应用于各类推理场景。Triton支持多种模型格式、查询类型和部署方式,具备高效的模型管理和优化能力,确保高性能和系统稳定性。文章详细解析了Triton的主从架构,包括模型仓库、客户端应用、通信协议和推理服务器的核心功能模块。
226 1
NVIDIA Triton系列02-功能与架构简介
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
87 1
政务部门人工智能OCR智能化升级:3大技术架构与4项核心功能解析
本项目针对政务服务数字化需求,建设智能文档处理平台,利用OCR、信息抽取和深度学习技术,实现文件自动解析、分类、比对与审核,提升效率与准确性。平台强调本地部署,确保数据安全,解决低质量扫描件、复杂表格等痛点,降低人工成本与错误率,助力智慧政务发展。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等