# 简介

  • MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。

  • MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

  • MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

# 优点

  1. 弱一致性(最终一致),更能保证用户的访问速度。

  2. 文档结构的存储方式,能够更便捷的获取数。

  3. 内置 GridFS,高效存储二进制大对象 (比如照片和视频)。

  4. 内置Sharding。提供基于Range的Auto Sharding机制:一个collection可按照记录的范围,分成若干个段,切分到不同的Shard上。

  5. 第三方支持丰富。(这是与其他的NoSQL相比,MongoDB也具有的优势)。

  6. 性能优越:在使用场合下,千万级别的文档对象,近10G的数据,对有索引的ID的查询不会比mysql慢,而对非索引字段的查询,则是全面胜出。

# 缺点

  1. mongodb不支持事务操作。所以事务要求严格的系统(如果银行系统)肯定不能用它。

  2. mongodb占用空间过大。

  3. MongoDB没有如MySQL那样成熟的维护工具,这对于开发和IT运营都是个值得注意的地方。