什么是MongoDB ?
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
MongoDB特点
- 支持特别查询
在MongoDB中,可以通过字段,范围查询进行搜索,并且还支持正则表达式搜索。 - 索引
可以索引文档中的任何字段。 - 复制
MongoDB支持主从复制。主机可以执行读写操作,从机从主机复制数据,只能用于读取或备份(不写入) - 复制数据
MongoDB可以在多台服务器上运行。 复制数据以保持系统正常运行,并在硬件故障的情况下保持其运行状态。 - 负载均衡
由于数据放在碎片中,因此具有自动负载平衡配置。 - 支持映射缩减和聚合工具
- 使用JavaScript而不是Procedure
- 它是一个用C++编写的无模式数据库
- 提供高性能
- 轻松存储任何大小的文件,而不会使您的堆栈复杂化
- 在故障的情况下易于管理
- 它还支持:
- 具有动态模式的JSON数据模型
- 自动分片用于水平可扩展性
- 内置复制高可用性
MongoDB优点
- MongoDB 的架构较少。它是一个文档数据库,它的一个集合持有不同的文档。
- 从一个到另一个的文档的数量,内容和大小可能有差异。
- MongoDB 中单个对象的结构很清淅。
- MongoDB 中没有复杂的连接。
- MongoDB 提供深度查询的功能,因为它支持对文档的强大的动态查询。
- MongoDB 很容易扩展。
- 它使用内部存储器来存储工作集,这是其快速访问的原因。
MongoDB的独特功能
- 使用方便
- 重量轻/轻量级
- 比RDBMS快得多
应该使用MongoDB在哪些场景
- 大而复杂的数据
- 移动和社会基础设施数据
- 内容管理和交付
- 用户数据管理
- 数据中心
MongoDB和RDBMS的性能分析
- 在关系数据库(RDBMS)中,表用作存储元素,而在 MongoDB 中使用的是集合。
- 在RDBMS中有多个模式,在每个模式中,可创建用于存储数据的表,而 MongoDB 是面向文档的数据库,数据是以类似JSON格式的BSON格式编写的存储的。
- MongoDB几乎比传统数据库系统快100倍。
MongoDB 应用案例
下面列举一些公司MongoDB的实际应用:
- Craiglist上使用MongoDB的存档数十亿条记录。
- FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。
- Shutterfly,以互联网为基础的社会和个人出版服务,使用MongoDB的各种持久性数据存储的要求。
- bit.ly, 一个基于Web的网址缩短服务,使用MongoDB的存储自己的数据。
- spike.com,一个MTV网络的联营公司, spike.com使用MongoDB的。
- Intuit公司,一个为小企业和个人的软件和服务提供商,为小型企业使用MongoDB的跟踪用户的数据。
- sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储。
- etsy.com ,一个购买和出售手工制作物品网站,使用MongoDB。
- 纽约时报,领先的在线新闻门户网站之一,使用MongoDB。
- CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。