MongoDB是一款通用型文档数据库,专为现代应用程序开发和云服务而设计。其横向扩展架构允许您通过添加更多节点来共享负载,以满足系统日益增长的需求。
以下是您在学习MongoDB时可能会遇到的一些关键概念和术语。
MongoDB以JSON文档的形式存储数据。
文档数据模型自然地映射到应用程序代码中的对象,使开发者可以轻松学习和使用。
JSON文档中的字段可以因文档而异。与传统的关系型数据库表相比,添加字段意味着在数据库表中添加一列,从而影响到数据库中的每个记录。
文档可以嵌套以表达层次关系,并存储如数组之类的结构。
文档模型提供了处理来自多个来源的复杂、快速变化、混乱数据的灵活性。它使开发者能够快速交付新的应用程序功能。
为了实现更快的内部访问并支持更多数据类型,MongoDB将文档转换为称为二进制JSON或BSON的格式。但从开发者的角度来看,MongoDB是一个JSON数据库。
在MongoDB中,集合是一组文档。
如果您熟悉关系型数据库,可以将集合视为表。但MongoDB中的集合具有更大的灵活性。除非您进行配置,否则集合不强制执行模式,同一集合中的文档可以具有不同的字段。
每个集合都与一个MongoDB数据库相关联。要显示特定数据库中的哪些集合,请使用命令listCollections。
确保高可用性的重要方法之一是保留多个数据副本。在MongoDB中,高可用性是设计的一部分。
在MongoDB中创建数据库时,系统会自动创建至少两个数据副本,称为副本集。副本集是一组至少三个MongoDB实例,它们之间持续复制数据,提供冗余并防止系统故障或计划维护时的停机。
现代数据平台需要能够处理非常快速的查询和大规模数据集,并使用由小型机器组成的更大的集群。分片是将数据智能地分布到多个机器的术语。
MongoDB中的分片是如何工作的?MongoDB在集合级别分片数据,将集合中的文档分布到集群中的分片中。结果是支持甚至最大型应用的可扩展架构。
索引支持查询的高效执行。MongoDB提供了多种不同的索引策略,包括多个字段的复合索引。精心选择索引可以加快查询速度,因为查询扫描的是索引,而不是读取集合中的每个文档。
分析哪些查询可以从添加索引中受益仍需做大量工作。一个为您执行此分析的工具是性能顾问,它可以分析查询并建议可以改进查询性能的索引。
MongoDB提供了一个灵活的框架,用于创建数据处理的管道,称为聚合管道。它具有数十个阶段和超过150个运算符和表达式,能够让您以规模处理、转换和分析任何结构的数据。最近新增的是联合阶段,它可以灵活地聚合多个集合的结果。
您可以使用哪些语言与MongoDB一起使用?支持的语言列表包括Node.js、C、C++、C#、Go、Java、Perl、PHP、Python、Ruby、Rust、Scala、Swift等等。每种语言的库都得到积极维护,这意味着它会随着新特性、错误修复、安全补丁和性能改进进行更新。
您可以通过检查实例状态、集群操作和连接指标、硬件指标等方式,仅使用一些实用工具和命令来监视集群的健康状况和性能。监控可以帮助您在问题变得严重之前检测和响应。
MongoDB最初是一个开源数据库,它仍然可以通过MongoDB社区版以这种方式使用。
在MongoDB企业版中,高级功能通过商业许可证提供。
MongoDB Atlas是MongoDB企业版的一种数据库即服务(DBaaS)版本,可在所有公共云上提供。
MongoDB Atlas已通过内置的紧密集成功能进行了扩展,例如Atlas搜索、Atlas矢量搜索和其他用于地理定位数据和备份的高级功能。
现在,您已经熟悉了在学习MongoDB时可能会遇到的术语,为什么不立即开始使用MongoDB Atlas呢?在此过程中,加入MongoDB社区,该社区提供从论坛到网络研讨会再到MongoDB大学的免费课程。一个好的开始是介绍性的M001:MongoDB基础课程。
MongoDB是一种通用数据库,具有广泛的使用案例。如果您仍在考虑MongoDB是否是您应用程序的正确选择,请查看为什么使用MongoDB?文章。
在我们的MongoDB基础系列中了解更多。