什么是MongoDB?简介,架构,功能和示例
通过这个教程,我们将学习如下内容:-
- 什么是MongoDB?
- MongoDB功能
- MongoDB示例演示
- MongoDB架构的关键组件
- 为什么要使用MongoDB
- MongoDB中的数据建模
- MongoDB和RDBMS之间的区别
# 什么是MongoDB?
MongoDB是面向文档的NoSQL数据库,用于大量数据存储。MongoDB是一个在2000年代中期问世的数据库。属于NoSQL数据库的类别。
# MongoDB功能
1. 每个数据库都包含集合,而集合又包含文档。每个文档可以具有不同数量的字段。每个文档的大小和内容可以互不相同。
- 文档结构更符合开发人员如何使用各自的编程语言构造其类和对象。开发人员经常会说他们的类不是行和列,而是具有键值对的清晰结构。
- 从NoSQL数据库的简介中可以看出,行(或在MongoDB中调用的文档)不需要预先定义架构。相反,可以动态创建字段。
- MongoDB中可用的数据模型使我们可以更轻松地表示层次结构关系,存储数组和其他更复杂的结构。
- 可伸缩性– MongoDB环境具有很高的可伸缩性。全球各地的公司已经定义了自己的集群,其中一些集群运行着100多个节点,数据库中包含大约数百万个文档.
# MongoDB示例
以下示例展示在MongoDB中如何建立文档模型。
- _id字段由MongoDB添加,以唯一标识集合中的文档。
- 请注意,RDBMS中的订单数据(OrderID,Product和Quantity)通常将存储在单独的表中,而在MongoDB中,这些数据实际上是作为嵌入式文档存储在集合本身中的。这是MongoDB中数据建模方式的主要差异之一。
MongoDB架构的关键组件
下面是MongoDB中使用的一些常用术语
- _id –这是每个MongoDB文档中必填的字段。_id字段表示MongoDB文档中的唯一值。_id字段类似于文档的主键。如果创建的新文档中没有_id字段,MongoDB将自动创建该字段。因此,例如,如果我们看到上述客户表的示例,Mongo DB将为集合中的每个文档添加24位唯一标识符。
- 集合 –这是MongoDB文档的分组。集合等效于在任何其他RDMS(例如Oracle或MS SQL)中创建的表。集合存在于单个数据库中。从介绍中可以看出,集合不强制执行任何结构。
- 游标 –这是指向查询结果集的指针。客户可以遍历游标以检索结果。
- 数据库 –这是像RDMS中那样的集合容器,其中是表的容器。每个数据库在文件系统上都有其自己的文件集。MongoDB服务器可以存储多个数据库。
- 文档 -MongoDB集合中的记录基本上称为文档。文档包含字段名称和值。
- 字段 -文档中的名称/值对。一个文档具有零个或多个字段。字段类似于关系数据库中的列。
下图显示了带有键值对的字段的示例。如下的例子中,CustomerID和11是文档中定义的键值对之一。
JSON –JavaScript Object Notation) 是一种轻量级的数据交换格式。这是一种可读行高易于解析的纯文本格式,用于表达结构化数据。目前,许多编程语言都支持JSON。
简要说明一下_id字段和常规collection字段之间的主要区别。_id字段用于唯一标识集合中的文档,MongoDB在创建集合时会自动添加_id字段。
为什么要使用MongoDB?
以下是一些为什么应该开始使用MongoDB的原因
- 面向文档的–由于MongoDB是NoSQL类型的数据库,它不是以关系类型的格式存储数据,而是将数据存储在文档中。这使得MongoDB非常灵活,可以适应实际的业务环境和需求。
- 临时查询-MongoDB支持按字段,范围查询和正则表达式搜索。可以查询返回文档中的特定字段。
- 索引-可以创建索引以提高MongoDB中的搜索性能。MongoDB文档中的任何字段都可以建立索引。
- 复制-MongoDB可以提供副本集的高可用性。副本集由两个或多个mongo数据库实例组成。每个副本集成员可以随时充当主副本或辅助副本的角色。主副本是与客户端交互并执行所有读/写操作的主服务器。辅助副本使用内置复制维护主数据的副本。当主副本发生故障时,副本集将自动切换到辅助副本,然后它将成为主服务器。
- 负载平衡-MongoDB使用分片的概念,通过在多个MongoDB实例之间拆分数据来水平扩展。MongoDB可以在多台服务器上运行,以平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。
MongoDB中的数据建模
从“简介”部分可以看出,MongoDB中的数据具有灵活的架构。与SQL数据库不同,在SQL数据库中必须在插入数据之前声明表的架构,而MongoDB的集合不会强制执行文档结构。这种灵活性使MongoDB如此强大。
在Mongo中对数据建模时,请记住以下几点
- 应用程序的需求是什么–查看应用程序的业务需求,并查看应用程序所需的数据和数据类型。基于此,确保相应地确定文档的结构。
- 什么是数据检索模式–如果我们可能使用大量查询操作,则可以考虑在数据模型中使用索引来提高查询效率。
- 数据库中是否频繁发生插入,更新和删除操作–如果数据建模设计需要重新考虑使用索引或合并分片,以提高整体MongoDB环境的效率。
MongoDB和RDBMS之间的区别
下面是MongoDB和RDBMS之间的一些关键术语差异
除了常见术语的差异,还包括其他一些差异:
- 关系数据库以强制执行数据完整性而闻名。这不是MongoDB中的明确要求。
- RDBMS要求首先对数据进行规范化,以便它可以防止孤立记录和重复数据的规范化,然后又需要更多表,这将导致更多表关联,从而需要更多键和索引。
随着数据库的增长,性能可能开始成为问题。同样,这不是MongoDB中的明确要求。MongoDB灵活,不需要先对数据进行规范化。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
“国货之光” 完美日记的微服务实践和优化思路
![lADPDgQ9rVfPg37NArPNBMs_1227_691_jpg_620x10000q90g](https://yqfile.alicdn.com/ceaf4f1439949ce0cac2200672236fdce7968400.jpeg) **如果你是一位程序媛,你一定知道完美日记。 如果你是一位程序员,你的那个她一定知道完美日记。** 今年双11,完美日记仅用28分钟就超过了2018年双11全天的销售额,成为第一个登上天猫双11彩妆榜首的国货品牌。在这个遍地都是漂亮小姐姐、号称男人(特指程序员)天堂的公司里,拥有着一支什么样的基础架构技术团队,他们是如何在 4 个月内筹建、上线电商平台的呢?本文将为您分享他们在实践微服务过程遇到的难点和优化思路。 完美日记基础架构技术团队欢迎您的加入,移步文末,了解详情。 ##起步 自建商城在设计之初,业务部门就提出了两个要求:不崩 & 快速上线。 在立项之后,团队还没有完全配备好,一边从其他团队里调取人手,一边大力招聘,与此同时,我们的架构师也在搭建一套分布式商城开发框架,编写 Demo,让新加入的同学能快速上手。 ##暴露问...
- 下一篇
阿里云杨敬宇:四层技术构建基于城市场景的边缘计算
12月11日,阿里云边缘计算技术负责人杨敬宇在2019亚太内容分发大会上表示:在未来,边缘计算主要是以地市、区县为单位开展,面向城市服务的交通、医疗、健康、教育、新零售等场景提供算力基础。阿里云认为边缘计算就是城市计算,我们将围绕城市场景去建设边缘计算基础设施和灵活易用的上层操作系统。 产业互联网、5G、AI与边缘计算 在过去25年,行业应用主要是集中在消费互联网领域,在技术层面大部分采用云-端二体网络架构支撑,这是一种趋于集中生产分散消费的模式。而随着5G、IoT等技术的革新,沉浸式消费体验来临,产业互联网也迎来发展机遇。计算不仅发生在中心,在远离中心靠近用户的边缘侧(如摄像头、传感器、IoT设备)也出现大量的计算需求,所以传统的云-端二体网络架构已经无法满足应用需求,信息架构需要由原来的辐射性架构演变成对等架构,来适应分散生产分散
相关文章
文章评论
共有0条评论来说两句吧...