什么是MongoDB
MongoDB 是一个以JSON为数据模型的文档数据库,文档来自于“JSON Document”,并非我们一般理解的PDF,WORD文档,官方描述如下:
MongoDB中的记录就是一个文档,它是由字段和值组成的数据结构。MongoDB 文档类似于 JSON 对象。字段的值可以包括文档、数组等。
官方文档地址:https://www.mongodb.com/docs/manual/introduction/
MongoDB特点?
高性能
MongoDB 提供了高性能的数据持久化,特别是:
- 对嵌入式文档数据减少了数据库系统上的 I/O 操作。
- 对索引支持更快的查询,索引可以包含来自嵌入式文档和数组的key。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 O2O 应用)
高可用性
MongoDB提供了副本集(replica set),它可以自动转移故障和数据冗余。副本集是一组维护相同数据集的 MongoDB 服务器。
高可扩展性
MongoDB 对水平可伸缩性作了友好的设计,也就是所谓的分片:
- 分片将数据分布在一组机器上
- 从3.4开始,MongoDB支持基于分片键创建数据区域。在一个集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。
支持多个存储引擎
MongoDB 支持多种存储引擎:
- WiredTiger 存储引擎(包括对静态加密的支持)
- 内存存储引擎。
- MongoDB 也提供了可插拔的存储引擎 API,允许第三方为 MongoDB 开发存储引擎
丰富的查询支持
MongoDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。