美光科技术语表

MongoDB

MongoDB 是一种非关系型数据库管理系统。与关系型数据库不同的是,它能够存储各种形式的数据。非关系型数据库以多种灵活格式(如键值对或文档)存储数据,在处理海量非结构化数据时能提供更强的可扩展性和性能。

MongoDB 诞生于 21 世纪 00 年代末,经过不断演进,逐渐获得认可,现已广泛应用于各个行业和各种用例。

了解什么是 MongoDB 以及如何使用它。

什么是 MongoDB?

MongoDB 的定义:MongoDB 是一种非关系型数据库,它将数据存储在类似 JSON 的文档中,这是一种用于存储和传输数据的轻量级格式。

JSON(JavaScript 对象表示法)是一种基于文本的数据格式。JSON 的设计旨在使其既便于人类阅读和书写,也便于机器解析和生成。JSON 采用一种基于文本的简单结构,通过键值对和数组来表示数据。

在 MongoDB 中,数据以一种被称为“BSON”(二进制 JSON)的格式存储,该格式对 JSON 进行了扩展,支持更多数据类型。MongoDB 能够高效地存储和查询这些数据。因此,对于需要灵活、高效且可扩展地存储数据的应用程序而言,MongoDB 是一款强大的工具。

MongoDB 的核心特点在于它是一种 NoSQL 数据库,这意味着它以非表格格式存储数据。也就是说,MongoDB 存储的是由字段(键值对)组成的文档,而非行和列,每个字段都有一个唯一的对象 ID。该格式提供了一种弹性数据存储模型,在数据管理方面可实现更大的灵活性和可扩展性。与 MongoDB 竞争的数据库有多种。然而,在能够以灵活的非关系型格式存储数据和文档方面,MongoDB 是独一无二的。

在 MongoDB 中,数据的基本单元是存储在其中的文档集合。由于采用了 BSON 格式,这些文档能够存储多种类型的数据,也让 MongoDB 成为一款功能强大的数据库,支持存储各种格式的数据。

MongoDB 的工作原理是什么?

MongoDB 以 BSON 格式存储文档,该格式经过优化,不仅速度快,还支持丰富的数据类型。这些特性使 BSON 成为适合 MongoDB 的理想格式,因为 BSON 能够处理不同数据类型的集合,与 MongoDB 的灵活性相得益彰。每个文档都是一系列键值对的集合,如以下例子所示:

​{

"name": "Alice", 

 "age": 29, 

 "skills": ["JavaScript", "Python"], 

 "address": { "city": "Boston", "zip": 10001 } 

这些键值对(例如字段“name”和值“Alice”)被组织到一个文档中。MongoDB 的灵活性体现在,它不强制要求使用固定的模式。每份文档可以包含不同的字段,从而能够存储更加多样化的数据。

MongoDB 的发展历程是怎样的?

MongoDB 的发展历史相对较短,其起源可追溯至大约二十年前。自诞生以来,MongoDB 的发展可谓是一日千里。

  • 2007 年,奠基:Dwight Merriman、Eliot Horowitz 和 Kevin Ryan 共同创立了“10Gen”公司,该公司开发了 MongoDB。他们还创立了一家名为“DoubleClick”的互联网广告服务公司,现已被 Google 收购。
  • 2009 年,开源项目成立:MongoDB 开源项目于 2009 年在 10Gen 的主导下成立。
  • 2013 年,更名:随着 MongoDB 的成功并广受欢迎,10Gen 的业务重心转向了数据库领域,其新名称 MongoDB, Inc. 也体现了这一点。
  • 2019 年,服务变更:经过数年的成功发展,MongoDB, Inc. 与阿里云达成合作,以保持其快速增长的势头。

MongoDB 有哪些主要版本?

MongoDB 有几种不同类型的版本,分别针对特定的用例和用户需求。

  • MongoDB 社区版是 MongoDB 的免费版本,包含众多特性以及所有核心功能,例如文档存储。此版本主要面向不需要额外功能的小型开发团队或组织。
  • MongoDB 企业版是社区版的升级版本,提供了高级安全功能、更完善的备份和恢复工具,以及高级性能监控功能。该版本主要面向需要增强型安全功能和运营工具的组织。
  • MongoDB Atlas 版是一个完全托管的、基于云的 MongoDB 版本,包含所有关键功能。所有部署、扩展、更新和备份均已实现全自动化,并内置了多种监控和性能优化工具。此版本非常适合规模较大的开发团队或组织,这些团队或组织需要额外的内置工具和强大的安全功能,以避免在管理基础设施时出现问题。

MongoDB 是如何应用的?

得益于其灵活性,MongoDB 可广泛应用于各个领域和行业。

用于移动应用程序时,能提升开发流程和组织的效率。JSON 文档模型可帮助存储关键的后端数据信息,这种应用场景凸显出了 MongoDB 的灵活性。例如,拍卖公司可以利用 MongoDB 来存储数十亿条商品信息、用户资料和交易数据。MongoDB 整合了不同环境中的数据,让开发人员能够自由且无缝地扩展其应用程序。

内容管理系统同样可以从 MongoDB 受益,它能在仅使用单个数据库的情况下,简化向网站添加新功能或属性的过程。这些特点使得相关实施过程简单且高效。

对于正在扩大业务规模的企业而言,实时分析至关重要。企业要想扩大业务规模并获取实时业务洞察,访问大型数据集至关重要。MongoDB 简化了这一过程,能无缝地将文档转换为 Java 对象,从而提高了整个流程的效率。例如,一些在线出版商利用 MongoDB 来深入分析文章在社交媒体上的分享情况,并实时把握热门内容的传播趋势。 

常见问答

MongoDB 常见问答

MongoDB 凭借其无模式设计提供了灵活性,并通过分片功能实现了可扩展性。
 

分片是 MongoDB 用来将数据分布到多台机器上的一种方法,其目的是实现水平扩展。该技术将数据划分为较小且易于管理的片段(称为“分片”),并将这些分片存储在多台服务器上。
 

MongoDB 的另一优势是 BSON 格式带来的性能优化。BSON(二进制 JSON)是一种对 JSON 文档进行二进制编码的序列化格式,针对速度进行了优化,并支持丰富的数据类型。这种优化使 MongoDB 能够高效处理海量数据,同时还能确保高性能。 
 

MongoDB 的易用性和强大的社区支持,使其成为开发团队和组织的理想之选。

尽管 MongoDB 在简化大型数据集方面非常高效,但这是以占用大量内存为代价的。MongoDB 高度依赖内存来高效处理信息,这意味着它需要大量内存来维持其高性能,尤其是对于频繁访问的数据而言。

MongoDB 能处理的集合数量没有固定上限,但过多的集合可能会影响该工具的性能。