文档数据库MongoDB的功能与特点

2020年11月2日14:48:57文档数据库MongoDB的功能与特点已关闭评论

文档数据库MongoDB的功能与特点

MongoDB是一个基于分布式文件存储的开源数据库系统,它是介于关系型数据库和非关系型数据库之间的产品,在非关系型数据库当中功能最丰富,最像关系型数据库。它支持的数据结构非常松散,可以存储比较复杂的数据类型。MongoDB最大的特点是查询语言非常强大,其语法类似于面向对象的查询语言,可以实现类似关系型数据库单表查询的绝大部分功能,而且还支持对任意字段的数据建立多级索引,因此可以获得不错的访问效率。

MongoDB是以文档为基本单位的,即一个文档拥有一个键-值对(key-value)。文档是一些属性或字段的组合,但不同文档不需要设置相同的字段,并且相同的字段也不需要具有相同的数据类型,这与关系型数据库有很大的区别,也是MongoDB非常突出的特点。

MongoDB是按集合(Collection)存储的,集合就是MongoDB文档组,类似关系型数据库中的表。每个集合在数据库中都有一个唯一的标志名,并且可以包含无限数目的文档。集合不需要有严格的模式定义,因此通常不需要知道存储在集合中的文件的结构定义;如果需要,可以将不同结构的文件存储在同一个数据库中。

存储在集合中的文档被存储为键-值对的形式。键用于标志一个文档,值可以是各种类型的文件,文件用二进制形式存储。这种存储形式称为BSON(Binary Serialized Document Format),网络数据交换也使用这种存储形式。

HBase在物理存储上将列族拆分,而MongoDB则不会对文档进行分开存储。MongoDB的这个特点有点像行式存储。

集合存储在数据库中,它没有固定的结构,对集合可以插入不同格式和类型的数据,但通常情况下插入集合的数据都会有一定的关联性。

MongoDB支持的数据类型非常丰富,其主要支持的数据类型如下所述。

(1)String:字符串,存储数据常用的数据类型。在MongoDB中,UTF-8编码的字符串才是合法的。

(2)Integer:整型数值,用于存储数值。根据所在的服务器,分为32位或64位两种。

(3)Boolean:布尔值,用于存储布尔值(真/假)。

(4)Double:双精度浮点值,用于存储浮点值。

(5)Min/Max Keys:将一个值与BSON(二进制的JSON)元素的最低值和最高值相对比。

(6)Arrays:用于将数组、列表或多个值存储为一个键。

(7)Timestamp:时间戳,用于记录文档修改或添加的具体时间。

(8)Object:用于内嵌文档。

(9)Null:用于创建空值。

(10)Symbol:符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。

(11)Date:日期时间,用UNIX时间格式来存储当前日期或时间。

(12)Object ID:用于创建文档的ID。

(13)Binary Data:用于存储二进制数据。

(14)Code:代码类型,用于在文档中存储JavaScript代码。

(15)Regular Expression:正则表达式类型,用于存储正则表达式。

MongoDB与HBase的主要区别如下所述。

(1)HBase依赖于HDFS,而MongoDB直接存储在本地磁盘中。

(2)HBase按照列族将数据存储在不同的文件中;MongoDB不分列,整个文档都存储在一个或者一组文件中。

(3)HBase根据文件的大小来控制域的拆分,而MongoDB根据负载情况来决定如何分片(Shards)。

一般来说,MongoDB的读效率比写效率高,而HBase适合写多读少的情况。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。