1、简介:
(1)MongoDB是一个基于分布式文件存储的数据库,C++编写的。
(2)目的是為web应用给提供可扩展的高薪更数据存储解决方案。
(3)介于关系型数据库和非关系型数据库之间,是非关系型数据库中最像关系型数据库的。
(4)支持的数据结构非常松散,bson类似于json,可以存储比较复杂的数据类型。
(5)MongoDB最大的特点是支持的查询语言非常强大,语法类似于面向对象的查询语言。
(6)几乎可以实现类似关系型数据库单表查询的绝大多数功能。
(7)支持对数据建立索引。
2、特点
(1)高性能、易部署、易使用。存储数据非常方便。
(2)面向集合存储、易存储对象类型的数据。
(3)支持动态查询。
(4)支持完全建立索引,包含内部对象。
(5)使用高效的二进制数据存储,包括大型对象(如音频视频)。
(6)自动处理碎片,以支持云计算层次的扩展性。
(7)支持Ruby、Python、Java、C++、PHP、C#等多种语言。
(8)文件存储格式為BSON (一种JSON的扩展格式)。
(9)可以通过网络访问。
3、原理
面向集合(Collection-Oriented):是数据被分组存储在数据集中,被称为一个集合。
每个集合在数据库中都有一个唯一的标识名称(类似于关系型数据库中的表名),并且可以包含无限制数的文档。
模式自由(schema-free) :意味着对于存储在MongoDB数据库中的文件,我们不需要知道他的任何结构定义。若需要,则可单独建立一个集合。
4、应用场景
(1)网站实时数据处理。非常适合实时的CURD操作,并具备网站实时数据存储所需的复制及共度伸缩性。
(2)缓存。由于性能很高,适合作为信息基础设施的缓存层。在系统重启后,又它搭建的持久化缓存层可以比main下层的数据源过载。
(3)高伸缩性的场景。非常适合又数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。