说明:英文原文地址:https://docs.mongodb.com/v3.2/introduction/。
本文档属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有不正确之处,欢迎指正。
MongoDB介绍
MongoDB是一个高性能、高可用性、可自动伸缩的开源文档数据库。
文档数据库
MongoDB中的一条记录是一个文档,是由键-值对组成的数据结构。MongoDB的文档与JSON对象类似。字段的值可能包含其他文档、数组或文档数组。
使用文档的优势有:
- 文档(即对象)在很多编程语言中可以对应到本地数据类型。
- 嵌入文档和数组减少了昂贵的连接(join)操作。
- 动态模式支持流畅的多态机制。
关键特征
高性能
MongoDB提供高性能的数据持久化,特别地:
- 支持嵌入数据模型,减少了数据库系统上的I/O操作。
- 索引支持快速查询,可以从嵌入文档和数组中创建索引。
丰富的查询语言
MongoDB支持丰富的查询语言以进行读写操作(CRUD),并且支持:
- 数据聚集
- 文本搜索和地理空间查询。
高可用性
MongoDB的复制机制,称为复制集,提供了:
- 自动故障转移 ,和
- 数据冗余。
一个复制集就是一组MongoDB服务器,它们保存相同的数据集,提供冗余,增加了数据可用性。
水平扩展
作为它的核心功能的一部分,MongoDB支持水平伸缩:
- 分片,把数据分布在一个机器集群中
- 可标记的分片允许把数据导到特定的分片,以能够照顾到分片的地理分布。
支持多个存储引擎
MongoDB支持多个存储引擎,例如:
- WiredTiger存储引擎,和
- MMAPv1存储引擎
此外,MongoDB提供了可插入的存储引擎API,允许第三方为MongoDB开发存储引擎。