当前位置:首页 > 开发教程 > .net教程 >

在.NET中整合MongoDB实现快速数据访问

时间:2016-02-24 13:34 来源:互联网 作者:源码搜藏 收藏

什么是MongoDB的? MongoDB是由10gen公司主办的面向数据库的文件。 它是用来尤其是在四方,在SourceForge和bit.ly. 在BSON格式蒙戈存储文档(二进制JSON支持更多一点的值类型),并提供了一个shell JavaScript来访问数据并进行管理操作。 许多司机都实现包括

什么是MongoDB的?

MongoDB是由10gen公司主办的面向数据库的文件。它是用来尤其是在四方,在SourceForge和bit.ly.

在BSON格式蒙戈存储文档(二进制JSON支持更多一点的值类型),并提供了一个shell JavaScript来访问数据并进行管理操作。许多司机都实现包括Java.NETPHP,Java脚本。的基本概念面向文档意味着存储对象在一个文件BSON(不仅是一个键样式映射/值)容易地被映射到我们在我们的程序操纵的对象的形式表示。你可以把它比作一个存储组对象的XML表示的。

无模式:比较的MongoDB NoSQL的和传统的关系型数据库

当开发一个数据访问层,我们经常要么使用ORM,或使用将开发自己一张地图,但都将这样做是处理和相关对象映射同样的工作。

更像传统的关系型数据库不允许复杂数据的存储(实体表,嵌套,集合),我们必须执行各种SQL查询来获得我们的数据或更新。

鉴于这两点,数据层的发展进入了很多工作。这些天我们正在失去实现技术和非功能性的答案,我们可能会影响到企业的发展和满足我们的客户优势。

对于此一个解决方案,存储.NET对象,因为它们并要求我们的持久性引擎给我们管理这一工作。一个梦想的MongoDB和NoSQL数据库允许持有。这就是所谓的无模式。

什么与MongoDB的分片?

MongoDB的自1.2版采用了分片管理。这种管理的实施,可实现更高的可扩展性。我们的数据是一致的一切,因为它总是访问所有。分片的概念不是在主/主多个数据库,而是一个数据库,在各个论坛分布式自己的数据。我们见面,并有一个实例,并且其他的另一个一些数据。这一方面是不是在这篇文章中详细介绍。

什么是GridFS的?

MongoDB的他踏上一个完整的文件系统。该系统是GridFS的。MongoDB是限于每4MB的文件,但我们很快就需要存储重要文件。GridFS的允许它。因此,我们存储任何文件大于4 MB GridFS的文件系统。GridFS的并允许其文件分片。因此,我们需要机器之间的rsync。GridFS的做的工作为他自己。人们可以很容易地在GridFS的HBase的带来。

先进的查询系统

在我看来,MongoDB中的最后的真正兴趣,尤其是相比了Riak和CouchDB是它的查询管理。如何能非常精细的感谢查询到大量的关键字。我们可以富比在SQL查询,但都在一个面向数据库的文件。
例如,一个可以搜索有一个数组的多个元素的所有文件
db.things.find({A:{$所有:[2,3 ]}}); 
而在SQL会作出更
SELECT * FROM东西放在一个LIKE'%2%'和具有LIKE'%3%' 
但它是不完整的,因为它最终会为一个“要”遏制领域的合作数组[32] SQL,但将在MongoDB中查询的情况下无法正常工作。
通过给我们也可以做研究
的Javascript db.myCollection.find({$其中“this.a> 3”}); 
它是高度模块化和关键字的数量正在增加。

在.NET 4.5入门

有许多实用工具库MongoDB的沟通,我劝你留下来,并使用相同的MongoDB项目提供的标准驱动程序。

将要实施的架构层的MongoDB

在.NET中整合MongoDB实现快速数据访问

设置图层

我们将使用其他DAL经典机制。在web.config ConnectionString,以设置服务器

 < connectionStrings >
    < add name="MongoDB" connectionString="mongodb: // localhost" > < / add >
< / connectionStrings >

数据库应用程序设置的名称

 < appSettings >
...
< add key="MongoDBName" value="MyTvProgram" / >
< / appSettings >

你的机器上安装的MongoDB(单实例)

  1. 开始安装之前,您必须下载最新版本的MongoDB。要做到这一点,请访问以下地址:http://www.mongodb.org/downloads,并选择您想要安装的类型。
  2. 要开始安装,只需双击MSI软件包,并按照屏幕上的说明
  3. 创建一个文件夹来存放数据库C:\ DATA \ db和一个日志文件C:\ DATA \日志
  4. 创建一个配置文件,允许您配置的MongoDB:mongod.conf
  5. 您可以开始使用位于bin文件夹中的mongod mongod.exe程序:配置的mongod mongod.conf
  6. 您还可以配置的mongod作为服务的使用方法:mongod的mongod.conf配置--install
  7. 配置mongod的自动或手动启动:sc配置的mongod开始=自动

主机与复制MongoDB数据库在Windows Azure上

Windows Azure的原生支持的MongoDB不这样做,你有例子mongolab SaaS服务,但它是有限的,因此可以支持一个免费的MongoDB集群,必须创建两个基本的VM

  1. 创建一个虚拟机名称<yourcompany> mgdb1
  2. 创建另一个虚拟机名称<yourcompany> mgdb2
  3. 分配一个驱动器每个VM 30 GB和字母f关联

重复上每个虚拟机进行以下操作

  1. 登录到您的第一台机器
  2. 格式化你的磁盘数据
  3. 禁用IE浏览器的控制。
  4. 添加http://*.mongodb.org到可信站点列表
  5. 下载64位版
  6. 安装MSI
  7. MongoDB的默认安装在C:\ Program Files文件\ MongoDB的\服务器\ 3.2 \ bin中,创建一个Path环境变量指向的文件
  8. 下载并安装OpenSSL的,这将允许您为复制创建一个证书:https://slproweb.com/download/Win64OpenSSL_Light-1_0_2f.exe
  9. 在你的磁盘驱动器F创建2个文件夹:数据和日志
  10. 创建1 conf文件夹
  11. 添加mongod.conf文件
  12. 添加必要的参数:
    • 端口:在其默认的聆听27017的端口号
    • DBPATH:数据路径
    • 复制集¥0 =:表示一个复制将使用
    • 日志路径:表示的路径日志文件
    • logaappend表示旋转
  13. 如果该节点是不是第一,创建文件夹并复制MongoDB的密钥文件,文件中的第一个节点的密钥。
  14. 安装服务的MongoDB的mongod --config F:\的conf \ mongod.conf --install
  15. 启动网mongdb服务启动的MongoDB
  16. 如果这是第一个节点,登录到该服务器和启动蒙戈rs.initiate复制()
  17. 以连接到服务打开一个端口在防火墙的MongoDB
  18. 配置Windows Azure中的端点上的TCP端口27017的虚拟机
  19. 如果这是第一个节点,在主创建管理用户
    
    		
    1. use admin
    2. db.createUser ({
    3. user: "siteUserAdmin"
    4. pwd: "< password >"
    5. Actual: [{role: "userAdminAnyDatabase" db "admin"}]
    6.});
    7. db.createUser ({
    8. user: "siteRootAdmin"
    9. pwd: "< password >"
    10. Actual: [{role: "root", db: "admin"}]
    11.});
  20. 停止的MongoDB实例
  21. 创建的第一个节点仅一个密钥文件被复制的每个成员可使用
    • 我推荐使用OpenSSL的,但也可以使用其他机制。
    • 复制每个成员上生成的密钥文件
    • 编辑配置文件来指定要使用的密钥文件。密钥文件
    • 重复第一台服务器上运行

一个节点添加到复制

  1. 从该新节点的主机,
  2. 连接至第一节点蒙戈<premiernoeud> -u siteRootAdmin -p <密码> --authenticationDatabase管理员
  3. 使用rs.add法(“nomdelamachine:27017”)来添加节点

检查复制的配置。

  1. 从任何主机
  2. 连接至第一节点蒙戈<premiernoeud> -u siteRootAdmin -p <密码> --authenticationDatabase管理员
  3. 使用rs.conf()方法

在Visual Studio 2015年接入层数据的发展

  1. 我们前面在第1节和2中创建重复库,
  2. 在STPVideoPlayer.DataLayer项目中,添加以下类
    • EpisodeModel:描述一个小插曲
    • LocalVideoModel:形容本地视频文件
    • YoutubeModel:为了描述存放在YouTube视频或播放列表
    • TimeLineModel:形容规划
  3. 安装驱动程序的MongoDB为的NuGet STPVideoPlayer.Data.MongoProvider项目

    在.NET中整合MongoDB实现快速数据访问

  4. 创建一个类TvPlayerRepository
  5. 通过实现该接口实现的代码给我们提供ITvPlayerRepository

.net教程阅读排行

最新文章