目录:ASP.NET MVC企业级实战目录

MongoDB简介

MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库 (database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没 有列、行和关系概念,这体现了模式自由的特点。

特点:高性能、易部署、易使用,存储数据非常方便。

主要功能特性有:

  • 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 支持复制和故障恢复。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 自动处理碎片,以支持云计算层次的扩展性
  • 支持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数据格式非常适合文档化格式的存储及查询。

9.6.2 下载安装和配置

1. 下载MongoDB 安装包

官方最新版下载地址https://www.mongodb.com/download-center

其它版本下载地址:https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl

注意:虽然目前最新版本是3.2.6,但是笔者试了十余款MongoDb可视化工具连接3.2.6版本,使用起来都会有问题,所以笔者在这里使用比较低的3.0.7版本。这也告诉我们一个经验:在进行技术选型的时候,不要追求最新的,而应当选择既能满足需求又运行非常稳定的。因为最新的技术,不但相关资料少,而且也没有经过项目的实际验证。学习成本很高,风险大。

当然,在这里,如果你不需要使用可视化客户端工具,使用最新的Mongodb版本进行操作是没有任何问题的。

笔者下载的版本如图9-51所示。

图9-51

2. Windows下安装MongoDB

下载安装包后,进行安装,默认会把MongoDB安装在目录C:\Program Files\MongoDB中。

查看C:\Program Files\MongoDB\Server\3.0\bin目录,如下图9-52所示。

图9-52

mongod.exe 是用来连接到mongo数据库服务器的,即服务器端。

mongo.exe 是用来启动MongoDB shell的,即客户端。

其他文件:

Mongodump.exe:逻辑备份工具。

mongorestore.exe:逻辑恢复工具。

mongoexport.exe:数据导出工具。

mongoimport.exe:数据导入工具。

(1)配置MongoDB环境

在目录D:\WorkSpace\mongodb下新建data文件夹,data文件夹将会作为数据存放的根文件夹。

(2)以管理员身份运行CMD。分别执行如下2条CMD命令:

cd \Program Files\MongoDB\Server\3.0\bin
mongod.exe --dbpath D:\WorkSpace\mongodb\data

注意:最后一行命令中的-dbpath 参数值就是我们第一步新建的文件夹。这个文件夹一定要在开启服务之前事先建立好,否则会报错,因为mongodb不会自己创建此文件夹。

命令执行成功后会看到如下所示。

C:\Windows\system32>cd \Program Files\MongoDB\Server\3.0\bin

C:\Program Files\MongoDB\Server\3.0\bin>mongod.exe --dbpath D:\WorkSpace\mongodb\data
--04T00::00.153+ I JOURNAL [initandlisten] journal dir=D:\WorkSpace\mongodb\data\journal
--04T00::00.155+ I JOURNAL [initandlisten] recover : no journal files present, no recovery needed
--04T00::00.224+ I JOURNAL [durability] Durability thread started
--04T00::00.224+ I JOURNAL [journal writer] Journal writer thread started
--04T00::00.323+ I CONTROL [initandlisten] MongoDB starting : pid= port= dbpath=D:\WorkSpace\mongodb\data -bit host=DESKTOP-V7CFIC3
--04T00::00.324+ I CONTROL [initandlisten] targetMinOS: Windows /Windows Server R2
--04T00::00.324+ I CONTROL [initandlisten] db version v3.0.7
--04T00::00.324+ I CONTROL [initandlisten] git version: 6ce7cbe8c6b899552dadd907604559806aa2e9bd
--04T00::00.324+ I CONTROL [initandlisten] build info: windows sys.getwindowsversion(major=, minor=, build=, platform=, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49
--04T00::00.324+ I CONTROL [initandlisten] allocator: tcmalloc
--04T00::00.324+ I CONTROL [initandlisten] options: { storage: { dbPath: "D:\WorkSpace\mongodb\data" } }
--04T00::00.326+ I INDEX [initandlisten] allocating new ns file D:\WorkSpace\mongodb\data\local.ns, filling with zeroes...
--04T00::00.586+ I STORAGE [FileAllocator] allocating new datafile D:\WorkSpace\mongodb\data\local., filling with zeroes...
--04T00::00.589+ I STORAGE [FileAllocator] creating directory D:\WorkSpace\mongodb\data\_tmp
--04T00::00.597+ I STORAGE [FileAllocator] done allocating datafile D:\WorkSpace\mongodb\data\local., size: 64MB, took 0.004 secs
--04T00::00.623+ I NETWORK [initandlisten] waiting for connections on port

(3)在浏览器输入:http://localhost:27017/,可以看到如下提示:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

说明MongoDB数据库服务已经成功启动了。

(4)再次查看D:\WorkSpace\mongodb\data文件夹,你会发现data目录下面多了许多文件。如下图9-53所示。

图9-53

每次都使用CMD命令来开启mongodb服务端和客户端十分麻烦,我们完全可以把他服务端做成服务,设置开机自启动,然后客户端可以网上下载可视化客户端管理工具。这里我分别演示将其都做成批处理命令和服务。

Mongodb服务端

(1)做成批处理

新建文本文件mongodb_server.txt,输入如下文本:

@echo off
start cmd /k "cd/d C:\Program Files\MongoDB\Server\3.0\bin&&mongod --dbpath D:\WorkSpace\mongodb\data"

然后修改文件后缀名称为bat,最终文件全名为mongodb_server.bat。

(2)做成Windows服务

安装服务:新建文本文件mongodb_server_ Installer.txt,输入如下文本,然后另存为为.bat文件。

@echo off
echo 正在安装服务MongoDB...
start cmd /k "cd/d C:\Program Files\MongoDB\Server\3.0\bin&&mongod --install --serviceName MongoDB -serviceDisplayName MongoDB --logpath D:\WorkSpace\mongodb\log\MongoDB.Log --dbpath D:\WorkSpace\mongodb\data
echo 服务MongoDB安装成功...
echo 正在停止服务...
net start MongoDB
echo 按任意键退出...
pause启动服务:net start MongoDB

以管理员身份运行mongodb_server_ Installer.bat。

卸载服务:新建文本文件mongodb_server_ UnInstaller.txt,输入如下文本,然后另存为为.bat文件。

echo 正在停止服务...
net stop MongoDB
echo 正在删除服务...
sc delete MongoDB
echo 按任意键退出...
pause

以管理员身份运行mongodb_server_ UnInstaller.bat。

Mongodb客户端

新建文本文件mongodb_client.txt,输入如下文本:

@echo off
start cmd /k "cd/d C:\Program Files\MongoDB\Server\3.0\bin&&mongo"

然后修改文件后缀名称为bat,最终文件全名为mongodb_client.bat。

以后需要启动的时候,就可以直接双击批处理命令运行了。

9.6 MongoDB一的更多相关文章

  1. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  2. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  3. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  4. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  5. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  6. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

  8. MongoDB系列(一):简介及安装

    什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...

  9. [原]分享一下我和MongoDB与Redis那些事

    缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...

  10. 用MongoDB分析合肥餐饮业

    看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...

随机推荐

  1. XAMARIN.ANDROID SIGNALR 实时消息接收发送示例

    SignalR 是一个开发实时 Web 应用的 .NET 类库,使用 SignalR 可以很容易的构建基于 ASP.NET 的实时 Web 应用.SignalR 支持多种服务器和客户端,可以 Host ...

  2. 简述我的SOA服务治理

    SOA服务治理 1.解决业务部门服务冲突和纠纷2.版本定义与版本管理3.服务备案与服务管理4.业务监督与服务监控 SOA的战略目的 一.业务价值胜过技术策略 二.战略目标胜过具体项目的效益 三.内置的 ...

  3. mysql数据库主从同步

    环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168. ...

  4. 如何编译Zookeeper源码

    1. 安装Ant Ant下载地址:http://ant.apache.org/bindownload.cgi 解压即可. 2. 下载Zookeeper源码包 https://github.com/ap ...

  5. MyEclipse对Maven的安装

    好记性不如烂笔头,记录一下. 操作系统:windows 7 MyEclipse2015 JDK1.7 maven的下载链接,点这里下载apache-maven-3.0.4-bin.tar.gz. 下载 ...

  6. 如何让我们的PHP在Jexus中跑起来

    最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP.其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的.不过由于没有 ...

  7. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  8. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...

  9. WPF - 属性系统 (4 of 4)

    依赖项属性的重写 在基于C#的编程中,对属性的重写常常是一种行之有效的解决方案:在基类所提供的属性访问符实现不能满足当前要求的时候,我们就需要重新定义属性的访问符. 但对于依赖项属性而言,属性执行逻辑 ...

  10. 2000条你应知的WPF小姿势 基础篇<57-62 依赖属性进阶>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...