MongoDB是一个开源文档型数据库,能够提供高性能、高可用性以及自动拓展。
文档数据库
MongoDB中的一条记录就是一个文档,是一个数据结构,由字段和值对组成。MongoDB文档与JSON对象类似。字段的值有可能包括其它文档、数组以及文档数组。
使用文档的优势在于:
文档(例如,对象)对应许多编程语言中自然的数据类型。
嵌入文档及数组减少了昂贵的joins操作的需求。
动态的设计模式支持流畅的多态。
丰富的查询语言
MongoDB支持丰富的查询语言支持 :doc:` 读写操作 </crud>` 以及:
:doc:` 数据聚合 </core/aggregation-pipeline>`
:query:` 文本检索 <$text>` 以及 :doc:` 地理空间查询 </tutorial/geospatial-tutorial>` 。
高可用性
MongoDB’s replication facility, called replica set, provides:
自动的 故障恢复以及
数据冗余。
A replica set is a group of MongoDB servers that maintain the same data set, providing redundancy and increasing data availability.
水平扩展能力
MongoDB提供了水平拓展能力作为它 核心 功能的一部分:
:ref:` 分片 <sharding-introduction>` 将数据分发到机器集群中。
Tag aware 分片运行直接将数据引导到特定的分片,例如,考虑分片的地理分布等,
多个存储引擎的支持
MongoDB支持 :doc:` 多个存储引擎 </core/storage-engines>` ,例如:
此外,MongoDB还提供了可插拔的存储引擎API,能够允许第三方开发MongoDB的存储引擎。