MongoDB 是一个由 C++ 编写的基于分布式文件存储的高性能、高可用、可扩展的开源文档数据库,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,它在非关系数据库当中功能最丰富,最像关系型数据库。
文档数据库
MongoDB中的一条记录是一个文档,是一个由键值对组成的数据结构。MongoDB文档类似于JSON对象。键(field)的值可以包含其它文档、数组和文档数组。
主要特性
高性能
MongoDB提供了高性能的数据持久化,特别地:
- 支持嵌套数据模型,减少了数据库系统的I/O活动;
- 索引支持更快的查询,并且可以包含嵌套文档和数组的键。
丰富的查询语言
MongoDB提供了丰富的查询语言来支持读写操作,以及数据分片、文本搜索、空间查询。
高可用
MongoDB的副本集,提供了数据冗余和故障转移。MongoDB副本集是一组保持相同数据的MongoDB server,它们提供了数据冗余,增加了数据可用性。
横向扩展
MongoDB的横向扩展功能是其核心功能之一。
支持多种存储引擎
MongoDB支持多种存储引擎,如WiredTiger Storage Engine
、MMAPv1 Storage Engine
。此外,MongoDB提供了插拔式存储引擎API,允许第三方为MongoDB开发存储引擎。