非关系型数据的典型代表 MongoDB介绍及安装
  隗留柱
    一、MongoDB简介

    MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。

    小插曲:什么是NoSql?

    NoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用,这场运动开始于2009年初,通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。

    特点:
    高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
    面向集合存储,易存储对象类型的数据。
    模式自由。
    支持动态查询。
    支持完全索引,包含内部对象。
    支持查询。
    支持复制和故障恢复。
    使用高效的二进制数据存储,包括大型对象(如视频等)。
    自动处理碎片,以支持云计算层次的扩展性
    支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序,社区中也提供了对Erlang及.NET等平台的驱动程序。
    文件存储格式为BSON(一种JSON的扩展)。
    可通过网络访问。

    功能:
    面向集合的存储:适合存储对象及JSON形式的数据。
    动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
    完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
    查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
    复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
    高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
    自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。

    适用场合:
    网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
    缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源 过载。
    大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
    高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。
    用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。

    二、下载安装和配置
    安装Mongo数据库:
    在发布本文的时间官方提供的最新版本是:2.2.3 ,如果不做特殊声明,本教程所用的版本将会是这个版本。
    1.第一步:下载安装包:官方下载地址←单击此处,如果是win系统,注意是64位还是32位版本的,请选择正确的版本。
    2.第二步:新建目录"D:\MongoDB",解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。
    3.第三步:在"D:\MongoDB"目录下新建"data"文件夹,它将会作为数据存放的根文件夹。
    配置Mongo服务端:
    打开CMD窗口,按照如下方式输入命令:
    > d:
    > cd D:\MongoDB
    > mongod --dbpath D:\MongoDB\data
    配置成功后会看到如下画面:



    在浏览器输入:http://localhost:27017/,可以看到如下提示:
    You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number

    如此,MongoDB数据库服务已经成功启动了。
首都信息发展股份有限公司
上海贝电实业(集团)股份有限公司
武汉思为同飞网络技术股份有限公司
上海睿都信息科技有限公司
北京网康科技有限公司
梅县亚陈家电贸易有限公司
北京世纪互联宽带数据中心有限公司
安徽用友软件有限公司
银川凯帝科贸有限公司
北京能融恒通科技有限公司
北京清流技术发展有限公司
盘锦辽河油田启恒科技发展有限公司
武汉联宇技术股份有限公司
北京万彦永盛数字科技有限公司
智奇铁路设备有限公司
广州市益格通讯设备有限公司
大连环宇移动科技有限公司
成都科王科技有限公司
袁州区接待处
东华软件股份公司
爱阅读(北京)科技有限公司
北京中卫国投健康科技有限公司
大连金盛达科技发展有限公司
广州信诺网利信息技术有限公司
浪潮(北京)电子信息产业有限公司
贵阳立宇伟倢包装设备有限公司
昆明星矢科技有限公司
广州信诺网利信息技术有限公司
南京百珏科技有限公司
东华合创
济南盛驰科技有限公司
北京科诺伟业科技有限公司
新疆精河县人民医院
浙江瑞泽机具有限公司
仙居县金铭电脑有限公司
陕西地方电力(集团)
陕西志成大业网络技术有限公司
烟台万华合成革集团有限公司
北京泰时伟业
东华软件股份公司
北京大恒创新技术有限公司
中矿金程(北京)
北京昊科航科技有限责任公司
肇庆市粤凯网络科技有限公司
汉中海通机电实业发展有限责任公司
陕西普声电气有限公司
中都物流有限公司
上海卫盾信息科技有限公司
方正国际软件(北京)有限公司
邯郸市金世达科技有限公司
江苏省检验检疫科学技术研究院
山西新型炉业集团有限公司
大连海事大学
远特通信(北京)科技有限公司
华侨大学厦门工学院
东华软件股份公司
北京华胜视讯科技有限公司
广东中顺电器有限公司
广州中科诺泰技术有限公司
新疆众海新思信息技术有限公司
哈尔滨博博科技发展有限公司
中铁隧道装备制造有限公司盾构分公司
厦门泽宇科技工程有限公司
绍兴市智远信息技术有限公司
中远网络物流信息科技有限公司
哈尔滨物业供热集团有限责任公司
太极计算机股份有限公司,
山西友信科技发展有限公司
北京致远协创软件有限公司
陕西瑞金电子科技有限公司
吉林省电力有限公司松原供电公司
浙江中控软件技术有限公司
北京昊科航科技有限责任公司
苏州群凯信息系统有限公司
美特斯工业系统(中国)有限公司
苏州群凯信息系统有限公司
深圳市互联在线
上海厚普科技发展有限公司
北京网际快车网络技术有限公司
北京恒泰实达科技股份有限公司
云南大学
北京中软冠群软件技术有限公司
大连广信数码科技有限公司
天地阳光通信科技(北京)有限公司