本文借鉴了一些文章的内容,推荐:http://blog.csdn.net/liusong0605/article/details/10554395
什么是MongoDB?
MongoDB是一个基于分布式文件存储的数据库。是介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB的特点:
高性能、易部署、易使用,存储数据非常方便。
这里只说一些我认为比较有代表性的特点。
1、面向集合存储,易存储对象类型的数据。
意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定 义任何模式(schema)。
2、模式*。
意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
3、文件存储格式为BSON(一种JSON的扩展)
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(BinarySerialized dOcument Format)
4、支持完全索引,包含内部对象。
Mongodb支持关系型数据库的所有索引模式(升序,降序,唯一,复合,地理空间索引),同时也支持二级索引(通过B-tree实现)。每一个collection支持64个索引
5、使用高效的二进制数据存储,包括大型对象(如视频等)。
以前一直在使用关系型数据库,对于非关系型的数据库了解比较少,加上这是项目中立即要用到的,所以理论方面知道的比较少,这里只做基本了解。