手机版

ASP.NET核心整合蒙古数据库的完整步骤

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

1.前言和MongoDB简介

最近,我正在集成我自己的框架,顺便说一下,我重构了mongodb最简单的CRUD作为一个组件,并将其集成到ASP.NET的Core项目中。当然,本文没有解释MongoDB的集群部署,所以我将有机会分享一下。

首先,我们在MongoDB的官方文档中看到MongoDb的驱动程序为。净值高于2.4支撑。Net Core 2.0。

关于MongoDB,我想大家应该都很熟悉,没用过也没听说过。

1.什么是mongodb?

MongoDB是一个基于分布式文件存储的数据库,为web应用提供了一个可扩展的高性能数据存储解决方案。关系数据库和非关系数据库之间的产品具有非关系数据库中最丰富的功能。瞄准数据处理是一把利器。

2.什么是关系数据库和非关系数据库?

关系数据库:sqlserver、mysql等。我们使用的都是关系数据库,关系数据库遵循ACID原则,并且严格一致。

非关系数据库:也叫NoSQL,用于超大规模数据存储。这些类型的数据存储不需要固定模式,并且可以在没有冗余操作的情况下水平扩展。

3、关系数据库管理系统VS NoSQL

RDBMS:

高度组织的结构化数据

结构化查询语言

数据和关系存储在不同的表中

严格一致性

基本事务

NoSQL:

没有声明性查询语言

键值对存储、列存储、文档存储等。

最终一致性

非结构化和不可预测的数据

CAP定理,高可用性,高性能,高扩展性

相信在这一点上,眼尖的同学要注意CAP定理和最终一致性,他们肯定会想到分布式系统。我想在这里给你一个极大的赞美。在分布式系统中,nosql可以完美地结合起来,以提高我们的性能。

4.介绍一下RDBMS和Mongodb的一些概念,有助于你理解

翻译如下:

第二,ASP.NET芯集成mongoDB

1.为了方便演示,我下载了mongodb服务器的windows版本

可以自己在官网下载,然后对于视觉界面,我用的是工具Robo 3T。非常简单漂亮的可视化工具。推荐大家使用。

安装后,您将在windows服务中看到mongodb服务器

然后我们打开Robo 3T,连接我们的mongodb。

2.开始在项目中配置我们的mongodb

步骤1:我创建了一个新的Core2.0类库

引入了nuget包“MongoDB”。司机”。

然后在Startup.cs中扩展服务的扩展方法

//扩展方法公共静态类service collection extensions { public static void add MongoDB(此为servicecollection services,icon configuration configuration){ services。配置设置(选项={ options。ConnectionString=配置。GetSection(' mongoconnection: connectionstring ')。价值;选项。数据库=配置。GetSection(' mongoconnection: database ')。价值;});}}步骤2:重构封装mongodb的CRUD类。这里可以自己封装,只显示搜索和添加。

公共类MongoDBBase { private readonly IMongoDatabase _ database=null;public MongoDBBase(string connectionString,字符串数据库名){ var client=new MongoClient(connectionString);如果(客户端!=null) { _database=client .GetDatabase(databaseName);} } #region SELECT ///summary ///根据查询条件,获取数据////summary///type param name=' T '/type param///param name=' id '/param///returns/returns public ListT GetListT(表达式onfunt,bool条件=null){ var collection=_ database .GetCollectionT(类型为(T))。名称);如果(条件!=null){ 0返回集合。查找(条件)。to list();}返回收藏查找(_=真).to list();} # end region # region INSERT///summary///插入多条数据,数据用目录表示////summary///type param name=' T '/type param///param name=' list '/param///returns/returns public ListT InsertManyT(ListT list){ var collection=_ database .GetCollectionT(类型为(T))。名称);收藏。插入许多(列表);退货清单;} #endregion }第三步:新建一个ASP。网核心网络美国石油学会(American Petroleum Institute)项目,引用此类库进行演示

在项目中的appsetting.json添加数据库的连接字符串:我在这边使用自定义的一个数据名称testdb,在插入数据库的时候会会自动在创建数据库和集合以及文档。接着往下看

MongoConnection ' : {//MongoDB数据库连接ConnectionString ' : ' MongoDB ://127。0 .0 .1:27017 ',' Database': 'testdb ',' IsSSL': true },第四步:新建一个数据库测试控制器,展示了插入单条和多条以及查询的接口。

[产品('应用程序/JSON ')][路由(' API/MongoDB/[操作]')]公共类MongoDBController :控制器{私有只读MongoDBBase _ context=null公共MongoDBController(iotoponsettings设置){ _context=new MongoDBBase(设置。值。连接字符串,设置。值。数据库);}[HttpGet]public IActionResult addList(){ listmangdbpost Test list=new listmangdbpost Test(){ new mongodbpost Test(){ Id=' 2 ',Body='Test note 3 ',UpdatedOn=DateTime .现在,UserId=1,标题图像=新便笺图像{ ImageSize=10,Url='http://localhost/image1.png ',thumbnailleurl=' http://localhost/image1 _ small。png ' },new mongodbpostest(){ Id=' 3 ',Body='测试说明4 ',UpdatedOn=DateTime .现在,UserId=1,标题图像=新便笺图像{ ImageSize=14,Url='http://localhost/image3.png ',缩略图URl=' http://localhost/image3 _ small。png ' } } }请尝试{ _context .插入许多(列表);} catch(Exception ex){ throw;}返回' Ok('成功');}[HttpGet]public resultlistangodbpostest selectSingle(){//无条件var列表=_context .getlistmangdbpostst();//有条件//var list=_context .getlistmangdbpostTest(a=a . Id==' 1 ');//得到单条数据,无条件//var list=_context .getsinglemongodbpostest();//得到单条数据,有条件//var list=_context .getsinglemongodbpostest(a=a . Id==' 3 ');ObjectId internalId=_context .GetInternalId(' 5 bbf 41651 D3 b 66668 cbb 5 bfc ');var a=_上下文GetSingleMongoDBPostTest(注意=注意id==' 5 bbf 41651 D3 b 66668 cbb 5 bfc ' | |注意内部id==内部id);返回ResHelper .Suc(1,列表'成功');}}测试类

公共类MongoDbPostTest { [BsonId] //由MongoDB公共ObjectId InternalId { get设置;}公共字符串Id { get设置;}公共字符串Body { get设置;}=字符串。空的;[BsonDateTimeOptions]公共日期时间更新{获取设置;}=DateTime .现在;公共笔记图像标题图像{ get设置;} public int UserId { get设置;}=0;}公共类NoteImage {公共字符串Url { get设置;}=字符串。空的;公共字符串拇指指甲{获取设置;}=字符串。空的;公共长图像大小{ get设置;}=0L}第五步:运行项目,执行一下。

我们执行一下插入多条的数据吧,执行成功。

然后我们查看数据库,发现已经生成了一个testdb数据库,其中包含了我们的数据内容

然后我们执行以下操作:返回我们刚刚插入的数据。

注意:这里有一个坑需要解决,就是mongodb存储的时间是UTC,会和我们当地时间相差8个小时。因此,这里需要特殊的治疗时间。

三.摘要

至此,mongodb的简单应用已经演示完毕。以后,我们可以根据官方文件进行扩展。我们越往后延伸,它就会越有趣。谢谢你的支持。谢谢你。

参考文件:

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

蒙古数据库中文手册:http://www.mongoing.com/docs/

好了,这就是本文的全部内容。希望本文的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

版权声明:ASP.NET核心整合蒙古数据库的完整步骤是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。