阿丹:
不断拓展自己的技术栈,不断学习新技术。
MongoDB中文手册|官方文档中文版 - MongoDB-CN-Manual
MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB文档类似于JSON对象。字段的值可以包括其他文档,数组和文档数组。
文档数据库是一种数据库模型,它专门用于存储和管理非结构化数据,例如文档、文本和半结构化数据。相比传统的关系型数据库,文档数据库通过将数据组织为灵活的文档集合来提供更高的灵活性和扩展性。
在文档数据库中,数据以类似于JSON或BSON的文档格式存储,每个文档可以具有不同的结构和字段。这使得文档数据库适用于处理动态数据、半结构化数据或需要频繁变更模式的应用程序。
另一个重要的概念是文档数据库的查询能力。文档数据库提供了强大且灵活的查询功能,允许开发人员按需检索和操作存储的文档数据。这些查询可以使用结构化查询语言,如MongoDB的查询语言,或通过API进行编程。
总的来说,文档数据库提供了一种高度灵活的存储和查询解决方案,适合那些需要存储非结构化数据并保持灵活性的应用程序。
文档(即对象)对应于许多编程语言中的内置数据类型。
嵌入式文档和数组减少了对昂贵连接的需求。
动态模式支持流畅的多态性。
JSON是一种轻量级的数据交换格式,易于理解和使用。它使用人类可读的文本格式,采用键值对的形式来表示数据。JSON文档由嵌套的键值对组成,可以包含字符串、数字、布尔值、数组、嵌套的对象等数据类型。JSON格式非常适合简单的数据结构和基本的数据交换。
BSON是JSON的二进制表示形式,旨在提供更高的效率和更紧凑的存储方式。BSON使用二进制编码,以二进制形式表示JSON文档的键值对。与JSON相比,BSON格式存储更加紧凑,减少了存储空间和数据传输的需求,同时提供了更高的读写性能。
BSON支持的数据类型包括字符串、整数、浮点数、日期时间、布尔值、数组、嵌套的文档对象等。它还可以表示特殊类型,如正则表达式、JavaScript代码和二进制数据。BSON还提供了对数据类型的扩展,以支持更复杂的数据结构和功能,例如时间戳、最小、最大值等。
由于BSON的二进制表示形式,它在存储和传输数据时更加高效,并且能够更好地适应文档数据库的要求。因此,BSON是许多文档数据库(如MongoDB)中常用的文档存储格式。
下面是一个bson格式的示例
\x16\x00\x00\x00 // 整个文档的大小
\x02 // 数据类型为字符串
name\x00 // 字段名
\x0C\x00\x00\x00John\x00 // 字段值为字符串 "John"
\x10 // 数据类型为整数
age\x00 // 字段名
\x1E\x00\x00\x00 // 字段值为整数 30
\x00 // 数据类型为结束符
MongoDB将文档存储在集合中。集合类似于关系数据库中的表。
除集合外,MongoDB还支持:
只读视图(从MongoDB 3.4开始)
按需实例化视图(从MongoDB 4.2开始)。
数据库和集合 - MongoDB-CN-Manual
在MongoDB中,集合是文档的组,类似于关系数据库中的表。集合存在于数据库中,集合没有固定的结构,这意味着集合内的文档可以有不同的字段。
集合有以下主要特点:
Views — MongoDB Manual
又称按需式物化视图,是MongoDB4.2最强大的新增功能之一
按需实例化视图是在MongoDB中一种特殊的只读集合,它会根据用户的查询需求,动态地实例化视图。与传统的只读视图不同,按需实例化视图不会提前创建视图,而是在每次查询时实时创建,并根据查询条件过滤数据。
按需实例化视图可以有效地减少存储空间和计算资源的使用,因为只有在需要查询数据时才会创建视图,并过滤出符合条件的数据。此外,按需实例化视图还可以提高查询性能,因为它们不会受到固定视图所带来的限制,可以更灵活地过滤数据。
在MongoDB中,按需实例化视图可以通过使用$merge
阶段来创建。$merge
阶段可以将管道结果的集合合并到现有集合中,而不是完全替换集合。这个特性使得按需实例化视图成为可能。通过在管道中添加$merge
阶段,我们可以将聚合结果写入到现有集合中,并在需要时动态地实例化视图。
按需实例化视图在某些情况下非常有用,例如当我们需要动态地过滤数据,并根据查询条件实时生成视图时。通过使用按需实例化视图,我们可以更加灵活地处理数据,并确保数据的安全性和完整性。
MongoDB提供水平可伸缩性作为其_核心_ 功能的一部分:
分片将数据分布在一个集群的机器上。
从3.4开始,MongoDB支持基于分片键创建数据区域。在平衡群集中,MongoDB仅将区域覆盖的读写定向到区域内的那些分片。有关 更多信息,请参见区域章节。
MongoDB支持多个存储引擎:
WiredTiger存储引擎(包括对静态加密的支持 )
内存存储引擎。
另外,MongoDB提供可插拔的存储引擎API,允许第三方为MongoDB开发存储引擎。
← MongoDB手册内容
原文链接:Introduction to MongoDB — MongoDB Manual
MongoDB是一种文档型数据库,具有高性能、高伸缩性和易用性等特点,适用于多种场景。以下是一些MongoDB的使用场景:
总之,MongoDB适用于需要处理大量数据、需要高伸缩性和实时查询的场景,可以提供高效的数据存储、查询和分析功能,帮助企业提高业务效率和竞争力。
MongoDB之所以被广泛使用,是因为它具有以下优点:
综上所述,MongoDB具有文档型数据库结构、高性能、高扩展性、查询语言丰富、易于使用和社区支持等优点,使得它成为一种广泛使用的数据库。
MongoDB与其他数据库产品相比,具有以下特点:
相比其他数据库产品,MongoDB在文档型数据库结构、高性能、高扩展性、查询语言丰富、易于使用等方面具有优势。但是,每个数据库产品都有其适用的场景和优势,需要根据具体的应用需求来选择最合适的数据库产品。
Cassandra、CouchDB、Redis、Riak和HBase都是流行的数据库产品,每个产品都有其自己的特点和优缺点。
以下是对这些产品与MongoDB的对比和优缺点的简要概述:
相比之下,MongoDB具有文档型数据库结构、高性能、高扩展性、查询语言丰富、易于使用等优点。但是,每个数据库产品都有其适用的场景和优势,需要根据具体的应用需求来选择最合适的数据库产品。