MongoDB 简介

简介

MongoDB\[1\] 
是三个依照分布式文件存款和储蓄的数据库。由C++言语编写。目的在于为WEB应用提供可扩张的高品质数据存款和储蓄解决方案。

88bifa必发娱乐 1mongoDB

MongoDB\[2\] 
是三个在乎关周到据库和非关周详据库之间的出品,是非关周详据库当中作用最丰盛,最像关周密据库的。他帮忙的数据结构卓殊松懈,是近似jsonbson格式,由此得以储存比较复杂的数据类型。Mongo最大的表征是她辅助的查询语言非凡有力,其语法有点类似于面向对象的查询语言,差不离能够达成类似关周密据库单表查询的多边意义,而且还扶助对数码建立索引\[3\] 

mongodb特点

它的表征是高质量、易安插、易使用,存款和储蓄数据十三分有利于。首要成效特色有:

*面向集合存款和储蓄,易积存对象类型的数额。

88bifa必发娱乐 2mongodb集群参考

*情势自由。

*辅助动态查询

*扶助完全索引,包蕴在那之中对象。

*辅协助调查询。

*支撑复制和故障苏醒。

*利用便捷的二进制数据存款和储蓄,包蕴大型对象(如视频等)。

*活动处理碎片,以帮忙云总结层次的扩充性。

*支持RUBYPYTHONJAVAC++PHPC#等各种语言。

*文件存款和储蓄格式为BSON(一种JSON的恢弘)。

*可通过网络访问。

mongodb使用原理

所谓“面向集合”(Collection-Oriented),意思是数据被分组存款和储蓄在数据汇总,被誉为多个集合(Collection)。各类集合在数据库中都有二个唯一的标识名,并且能够蕴含无限数目标文书档案。集合的概念类似关系型数据库(XC60DBMS)里的表(table),差异的是它不要求定义任何情势(schema)。Nytro
MegaRAID技术中的闪存高速缓存算法,可以飞快识别数据库内大数目汇总的热数据,提供平等的性格革新。

情势自由(schema-free),意味着对于仓库储存在mongodb数据库中的文件,我们不须求理解它的其余组织定义。就算供给的话,你一点一滴能够把分裂结构的文书存款和储蓄在同叁个数据Curry。

积存在聚集中的文书档案,被贮存为键-值对的款型。键用于唯一标识1个文书档案,为字符串类型,而值则足以是种种复杂的文件类型。我们称这种存款和储蓄格局为BSON(Binary
Serialized Document Format)。\[3\] 

\[4\]  MongoDB已经在八个站点布局,其主要场景如下:

1)网站实时数据处理。它卓殊适合实时的插入、更新与查询,并有所网站实时数据存储所需的复制及高度伸缩性。

2)缓存。由于天性很高,它适协作为新闻基础设备的缓存层。在系统重启之后,由它搭建的持久化缓存层能够制止下层的数据源过载。

3)高伸缩性的景观。相当适合由数十或数百台服务器组成的数据库,它的门径图中早就包涵对MapReduce引擎的放权扶助。

不适用的光景如下:1)须要中度事务性的体系。

2)古板的商业智能应用。

3)复杂的跨文书档案(表)级联合检查询。\[4\] 

mongodb系统介绍

分布式文件系统(Distributed
File
System)是指文件系统一管理理的大体存款和储蓄能源不必然平昔连接在本地节点上,而是通过总括机网络与节点相连。分布式文件系统的规划基于客户机/服务器情势。三个超级的网络也许包罗多个供多用户访问的服务器。其它,对等风味允许一些种类扮演客户机和服务器的再次角色。

HBase是一个分布式的、面向列的开源数据库,该技能来自
Fay Chang
所撰写的谷歌(Google)随想“Bigtable:叁个结构化数据的分布式存款和储蓄系统

Yonghong Data
Mart是依照自有技巧研究开发的一款数据存款和储蓄、数据处理的软件。Yonghong Data
Mart的分布式文件存款和储蓄系统 (ZDFS)是在Hadoop
HDFS基础上拓展的改建和扩展,将服务器集群内装有节点上囤积的公文统管和储存。

mongodb实际利用

MongoDB服务端可运维在LinuxWindows88bifa必发娱乐,或mac
os
x平台,协理3壹位和63位应用,暗中同意端口为27017。推荐运营在六二十人平台,因为MongoDB在3一人形式运作时帮忙的最大文件尺寸为2GB。\[3\] 

mongodb版本发布

2012年05月23日,MongoDB2.1
开发分支公布了! 该版本选拔全新架构,包括众多增高。\[5\] 

2013年03月016日,MongoDB 2.0.6 发布,分布式文书档案数据库。\[6\] 

二〇一二年013月214日,MongoDB 2.4.3
公布,此版本包涵了一些质量优化,效用增强以及bug修复。

2013年08月20日,MongoDB 2.4.6 发布。

2012年7月06日,MongoDB 2.4.8 发布,是现阶段最新的稳定版。

mongodb数据开发

mongodb服务端

下载地址

在分化的系统上会有分化的本子。

mongodb驱动

下载地址

用分化的语言开发会有两样的驱动提供。

mongodb设计特征

MongoDB
的布置性目的是高质量、可扩充、易安顿、易使用,存储数据充足有益。其首要成效特色如下。

(1)面向集合存款和储蓄,简单囤积对象类型的数据。在MongoDB
中多少被分组存储在集聚中,集合类似CRUISERDBMS
中的表,3个聚集中能够储存无限多的文书档案。

(2)格局自由,选用无情势组织存款和储蓄。在MongoDB
中晤面中储存的数量是无形式的文书档案,选取无方式存款和储蓄数据是集结区别于ENCOREDBMS
中的表的一个主要特点。

(3)援助完全索引,能够在任意属性上建立目录,包含在这之中对象。MongoDB的目录和福睿斯DBMS
的目录基本均等,能够在钦命属性、内部对象上创造索引以增长查询的快慢。除此之外,MongoDB
还提供成立基于地理空间的目录的能力。

(4)协理查询。MongoDB 帮助添加的查询操作,MongoDB
差不多帮助SQL中的大部分询问。

(5)强大的集聚工具。MongoDB
除了提供丰盛的查询功用外,还提供有力的聚集工具,如count、group
等,帮忙接纳MapReduce 完结复杂的集结职责。

(6)扶助复制和数据复苏。MongoDB
支持主从复制机制,能够兑现数据备份、故障复苏、读增添等功用。而基于副本集的复制机制提供了机关故障恢复生机的机能,确认保障了集群数据不会丢掉。

(7)使用便捷的二进制数据存款和储蓄,包蕴大型对象(如摄像)。使用二进制格式存款和储蓄,能够保存任何类型的数额对象。

(8)自动处理分片,以支撑云计算层次的壮大。MongoDB
扶助集群自动切分数据,对数码进行分片可以使集群存款和储蓄越多的数额,完成更大的载荷,也能保障仓库储存的载荷均衡。

(9)支持Perl、PHP、Java、C#、JavaScript、Ruby、C
和C++语言的驱动程序,MongoDB
提供了现阶段拥有主流开发语言的数据库驱动包,开发人士使用别的一种主流开发语言都得以轻松编制程序,落成访问MongoDB
数据库。

(10)文件存款和储蓄格式为BSON(JSON 的一种增加)。BSON 是对二进制格式的JSON
的简称,BSON 协助文档和数组的嵌套。

(11)能够透过互联网访问。能够因而网络远程访问MongoDB 数据库。

mongodb基本概念

(1)文档

文书档案是 MongoDB
中多少的主干单位,类似于关周详据库中的行(可是比行复杂)。多个键及其涉及的值不变地位于一块儿就整合了文书档案。不相同的编程语言对文档的意味方法分裂,在JavaScript
汉语档表示为:

{“greeting”:“hello,world”}

那些文书档案只有叁个键“greeting”,对应的值为“hello,world”。多数情况下,文书档案比那么些更复杂,它含有多少个键/值对。例如:

{“greeting”:“hello,world”,“foo”: 3}

文书档案中的键/值对是雷打不动的,下边包车型地铁文书档案与地点的文书档案是完全两样的八个文书档案。

{“foo”: 3 ,“greeting”:“hello,world”}

文档中的值不仅能够是双引号中的字符串,也能够是其余的数据类型,例如,整型、布尔型等,也得以是其余二个文书档案,即文档能够嵌套。文书档案中的键类型只可以是字符串。

(2)集合

聚拢正是一组文书档案,类似于关周密据库中的表。集合是无情势的,集合中的文档能够是出乖弄丑的。例如,{“hello,word”:“迈克”}和{“foo”:
3},它们的键分歧,值的类型也差别,不过它们可以存放在同三个成团中,也正是见仁见智方式的文书档案都足以置身同2个集合中。既然集合中得以存舍弃何项指标文书档案,那么为何还索要动用八个汇聚?那是因为兼具文书档案都放在同1个会晤中,无论对于开发者照旧管理员,都很难对聚集举办政管理理,而且那种情况下,对聚集的查询等操作功能都不高。所以在实质上采纳中,往往将文书档案分类存放在分歧的集纳中,例如,对于网站的日记记录,可以遵照日志的级别进行仓库储存,Info级别日志存放在Info
集合中,Debug 级别日志存放在Debug
集合中,那样既有利于了管住,也提供了查询质量。可是须要注意的是,那种对文书档案进行分割来分别存款和储蓄并不是MongoDB
的强制须要,用户能够灵活选用。

能够选用“.”依据命名空间将集聚划分为子集合。例如,对于三个博客系统,或许包涵blog.user
和blog.article 多个子集合,那样划分只是让集体结构更好一些,blog
集合和blog.user、blog.article
没有别的涉及。固然子集合没有其余特殊的地方,然则使用子集合协会数据结构清晰,这也是MongoDB
推荐的格局。

(3)数据库

MongoDB 中多少个文书档案组成集合,七个汇集组成数据库。2个MongoDB
实例能够承接多少个数据库。它们之间能够当作相互独立,种种数据库都有单独的权限决定。在磁盘上,不一致的数据库存放在区别的公文中。MongoDB
中存在以下系统数据库。

● Admin 数据库:三个权力数据库,借使创制用户的时候将该用户拉长到admin
数据库中,那么该用户就活动三番五次了装有数据库的权柄。

● Local
数据库:那几个数据库永远不会被负责,可以用来存储本地单台服务器的妄动集合。

● Config 数据库:当MongoDB 使用分片格局时,config
数据库在其间接选举用,用于保存分片的新闻。

mongodb数据模型

多少个MongoDB 实例能够包含一组数据库,一个DataBase
能够分包一组Collection(集合),二个相会能够涵盖一组Document(文书档案)。七个Document包罗一组田野同志(字段),每三个字段都以四个key/value
pair。

key: 必须为字符串类型。

value:能够涵盖如下类型。

● 基本项目,例如,string,int,float,timestamp,binary 等门类。

● 一个document。

● 数组类型。

mongodb适用场景

MongoDB
的重中之重指标是在键/值存款和储蓄情势(提供了高质量和中度伸缩性)和价值观的GL450DBMS
系统(具有丰盛的意义)之间架起一座桥梁,它集两者的优势于一身。依据官方网站的描述,Mongo
适用于以下境况。

● 网站数据:Mongo
至极适合实时的插入,更新与查询,并具有网站实时数据存款和储蓄所需的复制及中度伸缩性。

● 缓存:由于品质很高,Mongo
也符合当作音信基础设备的缓存层。在系统重启之后,由Mongo
搭建的持久化缓存层能够幸免下层的数据源过载。


大尺寸、低价值的多寡:使用守旧的关系型数据仓库储存款和储蓄一些数目时恐怕会相比值钱,在此以前,很多时候程序员往往会挑选守旧的公文实行仓库储存。

● 高伸缩性的情景:Mongo 格外适合由数十或数百台服务器组成的数据库,Mongo
的途径图中早就包蕴对MapReduce 引擎的放置帮衬。

● 用于对象及JSON 数据的仓库储存:Mongo 的BSON
数据格式格外适合文书档案化格式的存款和储蓄及查询。

MongoDB 的使用也会有一部分范围,例如,它不相符于以下多少个地方。


中度事务性的体系:例如,银行或会计系统。古板的关系型数据库如今依旧更适用于必要大批量原子性复杂工作的应用程序。

● 守旧的商业智能应用:针对一定难点的BI
数据库会生出中度优化的查询艺术。对于此类应用,数据仓库恐怕是更方便的挑选。

● 需要SQL 的问题。

mongodb应用案例

上面罗列部分卖家MongoDB的骨子里运用:\[7\] 

  • Craiglist上选取MongoDB的存档数十亿条记下。

  • FourSquare,基于地方的社交网站,在亚马逊EC2的服务器上采纳MongoDB分享数据。

  • Shutterfly,以网络为底蕴的社会和私家出版服务,使用MongoDB的各类持久性数据存款和储蓄的渴求。

  • bit.ly, 1个依据Web的网址减少劳动,使用MongoDB的存款和储蓄自个儿的多寡。

  • spike.com,贰个M电视机互联网的联合经营集团, spike.com使用MongoDB的。

  • Intuit公司,一个为小企和个人的软件和服务提供商,为小型公司使用MongoDB的跟踪用户的多寡。

  • sourceforge.net,财富网站物色,创制和公布开源软件免费,使用MongoDB的后端存款和储蓄。

  • etsy.com ,三个进货和发售手工业成立物品网站,使用MongoDB。

  • London时报,当先的在线音讯门户网站之一,使用MongoDB。

  • CEXC60N,盛名的粒子物理研讨所,亚洲核子切磋中央大型强子对撞机的多少利用MongoDB。

附录:

mongodb   教程    http://www.runoob.com/mongodb/mongodb-tutorial.html

 

相关文章