<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        asp.net core集成MongoDB的完整步驟

        來源:懂視網 責編:小采 時間:2020-11-27 22:34:44
        文檔

        asp.net core集成MongoDB的完整步驟

        asp.net core集成MongoDB的完整步驟:一、前言及MongoDB的介紹 最近在整合自己的框架,順便把MongoDBD的最簡單CRUD重構一下作為組件化集成到asp.net core項目中,當然此篇文章中沒有講解mongodb的集群部署,等有機會分享一下。 首先,我們在MongoDB的官方文檔中看到,MongoDb的2.4以上
        推薦度:
        導讀asp.net core集成MongoDB的完整步驟:一、前言及MongoDB的介紹 最近在整合自己的框架,順便把MongoDBD的最簡單CRUD重構一下作為組件化集成到asp.net core項目中,當然此篇文章中沒有講解mongodb的集群部署,等有機會分享一下。 首先,我們在MongoDB的官方文檔中看到,MongoDb的2.4以上

        一、前言及MongoDB的介紹

        最近在整合自己的框架,順便把MongoDBD的最簡單CRUD重構一下作為組件化集成到asp.net core項目中,當然此篇文章中沒有講解mongodb的集群部署,等有機會分享一下。

        首先,我們在MongoDB的官方文檔中看到,MongoDb的2.4以上的For .Net的驅動是支持.Net Core 2.0的。

        針對MongoDB,我想大家應該不陌生,沒有用過也有聽過。

        1、mongodb是什么?

        MongoDB是一個基于分布式文件存儲的數據庫,為web應用提供可擴展的高性能數據存儲解決方案,介于關系型數據庫和非關系型數據庫的產品,是非關系型數據庫中功能最豐富的。針對于數據處理是一把利器。

        2、什么是關系型數據庫和非關系型數據庫?

        關系型數據庫:在我們所用過的sqlserver、mysql等,這些都是關系型數據庫,并且關系型數據庫是遵循ACID原則的,嚴格的一致性。

        非關系型數據庫:也叫作NoSQL,用與超大規模數據的存儲,這些類型的數據存儲不需要固定的模式,無需多余的操作就可以橫向擴展。

        3、RDBMS VS NoSQL

        RDBMS:

          高度組織結構化數據

          結構化查詢語言

          數據和關系都存儲在單獨的表中

          嚴格一致性

          基礎事務

        NoSQL:

          沒有聲明性查詢語言

          鍵-值對存儲,列存儲、文檔存儲等

          最終一致性

          非結構化和不可預知數據

          CAP定理、高可用、高性能、高擴展

        我相信講到這里,眼尖的同學應該有注意到 CAP定理和最終一致性,肯定會聯想到 分布式系統,在這里給你大大的一個贊。在分布式系統中可以完美的結合nosql,提高我們的性能。

        4、介紹一下RDBMS與Mongodb的一些概念,有助于幫助大家理解

        翻譯一下,即如下:

        二、asp.net core集成mongoDB

        1、為了演示方便我下載了 windows版本的mongodb server

        大家可以自行去官網下載,然后針對于可視化界面,我采用了 Robo 3T 這個工具。很簡潔美觀的可視化工具。推薦大家使用。

        安裝結束后會在windows服務中看到mongodb server

        然后我們打開一下Robo 3T,連接我們的mongodb。

        2、開始在項目中配置一下我們的mongodb吧

        第一步:我新建一個Core2.0類庫

        引入了 “MongoDB.Driver” 這個nuget包。

        然后擴展了 Startup.cs 中的Services的擴展方法

        //擴展方法public static class ServiceCollectionExtensions
         {
         public static void AddMongoDB(this IServiceCollection services, IConfiguration configuration)
         {
         services.Configure<Settings>(options =>
         {
         options.ConnectionString = configuration.GetSection("MongoConnection:ConnectionString").Value;
         options.Database = configuration.GetSection("MongoConnection:Database").Value;
         });
         }
         }

        第二步:重構封裝了mongodb的CRUD類,此處大家可以自行封裝,只展示了查找和新增。

        public class MongoDBBase
         {
         private readonly IMongoDatabase _database = null;
         public MongoDBBase(string connectionString, string databaseName)
         {
         var client = new MongoClient(connectionString);
         if (client != null)
         {
         _database = client.GetDatabase(databaseName);
         }
         }
        
         #region SELECT
         /// <summary>
         /// 根據查詢條件,獲取數據
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="id"></param>
         /// <returns></returns>
         public List<T> GetList<T>(Expression<Func<T, bool>> conditions = null)
         {
         var collection = _database.GetCollection<T>(typeof(T).Name);
         if (conditions != null)
         {
         return collection.Find(conditions).ToList();
         }
         return collection.Find(_ => true).ToList();
         }#endregion
        
         #region INSERT/// <summary>
         /// 插入多條數據,數據用list表示
         /// </summary>
         /// <typeparam name="T"></typeparam>
         /// <param name="list"></param>
         /// <returns></returns>
         public List<T> InsertMany<T>(List<T> list)
         {
         var collection = _database.GetCollection<T>(typeof(T).Name);
         collection.InsertMany(list);
         return list;
         }
         #endregion
         }

        第三步:新建一個asp.net core webapi 項目,引用此類庫進行演示

        在項目中的 appsetting.json 添加 mongodb的連接字符串:我在這邊使用自定義的一個數據名稱 testdb,在插入mongodb的時候會會自動在創建數據庫和集合以及文檔。接著往下看

         "MongoConnection": { //mongodb數據庫連接
         "ConnectionString": "mongodb://127.0.0.1:27017",
         "Database": "testdb",
         "IsSSL": true
         },

        第四步:新建一個mongodb測試控制器,展示了插入單條和多條以及查詢的接口。

        [Produces("application/json")]
         [Route("api/MongoDB/[action]")]
         public class MongoDBController : Controller
         {
         private readonly MongoDBBase _context = null;
         public MongoDBController(IOptions<Settings> settings)
         {
         _context = new MongoDBBase(settings.Value.ConnectionString, settings.Value.Database);
         }
         [HttpGet]
         public IActionResult AddList()
         {
         List<MongoDBPostTest> list = new List<MongoDBPostTest>()
         {
         new MongoDBPostTest()
         {
         Id = "2",
         Body = "Test note 3",
         UpdatedOn = DateTime.Now,
         UserId = 1,
         HeaderImage = new NoteImage
         {
         ImageSize = 10,
         Url = "http://localhost/image1.png",
         ThumbnailUrl = "http://localhost/image1_small.png"
         }
         },
         new MongoDBPostTest()
         {
         Id = "3",
         Body = "Test note 4",
         UpdatedOn = DateTime.Now,
         UserId = 1,
         HeaderImage = new NoteImage
         {
         ImageSize = 14,
         Url = "http://localhost/image3.png",
         ThumbnailUrl = "http://localhost/image3_small.png"
         }
         }
         };
        
         try
         {
         _context.InsertMany(list);
         }
         catch (Exception ex)
         {
        
         throw;
         }
        
         return Ok("成功");
         }
        
         [HttpGet]
         public Result<List<MongoDBPostTest>> SelectSingle()
         {
         //無條件
         var list = _context.GetList<MongoDBPostTest>();
        
         //有條件
         //var list = _context.GetList<MongoDBPostTest>(a => a.Id == "1");
        
         //得到單條數據,無條件
         //var list = _context.GetSingle<MongoDBPostTest>();
        
         //得到單條數據,有條件
         //var list = _context.GetSingle<MongoDBPostTest>(a => a.Id == "3");
        
         ObjectId internalId = _context.GetInternalId("5bbf41651d3b66668cbb5bfc");
        
         var a = _context.GetSingle<MongoDBPostTest>(note => note.Id == "5bbf41651d3b66668cbb5bfc" || note.InternalId == internalId);
        
         return ResHelper.Suc(1, list, "成功");
         }
        }

        測試類

        public class MongoDBPostTest
         {
         [BsonId]
         // standard BSonId generated by MongoDb
         public ObjectId InternalId { get; set; }
         public string Id { get; set; }
        
         public string Body { get; set; } = string.Empty;
        
         [BsonDateTimeOptions]
         public DateTime UpdatedOn { get; set; } = DateTime.Now;
        
         public NoteImage HeaderImage { get; set; }
        
         public int UserId { get; set; } = 0;
         }
        
        public class NoteImage
         {
         public string Url { get; set; } = string.Empty;
         public string ThumbnailUrl { get; set; } = string.Empty;
         public long ImageSize { get; set; } = 0L;
         }

        第五步:運行項目,執行一下。

        我們執行一下插入多條的數據吧,執行成功。

        然后我們看一下數據庫,發現已經生成了一個 testdb 數據庫,里面包含了我們的數據內容

        然后我們執行以下查的操作:把我們剛才插入的數據返回回來了。

        注意:這邊有一個坑有待解決,就是mongodb存儲的時間是UTC,會跟我們的本地時間相差8個小時。因此這邊需要特殊處理一下時間。

        三、總結

        至此,mongodb的簡單運用已演示完畢,后期大家根據官方文檔可進行擴展,越擴展到后面,會覺得越來越有意思。感謝大家的支持。Thank you。

        參考文檔:

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

        mongodb中文手冊:http://www.mongoing.com/docs/

        好了,

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net core集成MongoDB的完整步驟

        asp.net core集成MongoDB的完整步驟:一、前言及MongoDB的介紹 最近在整合自己的框架,順便把MongoDBD的最簡單CRUD重構一下作為組件化集成到asp.net core項目中,當然此篇文章中沒有講解mongodb的集群部署,等有機會分享一下。 首先,我們在MongoDB的官方文檔中看到,MongoDb的2.4以上
        推薦度:
        標簽: 步驟 的步驟 net
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 在线视频免费国产成人| 免费A级毛片在线播放| 日本免费电影一区| 亚洲免费网站观看视频| 免费毛片网站在线观看| 成人亚洲国产精品久久| 免费人成视网站在线观看不卡| 老司机亚洲精品影院在线观看| 国产免费观看网站| 日韩少妇内射免费播放| 亚洲熟妇无码乱子AV电影| 免费看搞黄视频网站| 亚洲小说图片视频| 女人让男人免费桶爽30分钟| 亚洲av综合av一区二区三区| 亚洲国产精品无码久久久久久曰| aa午夜免费剧场| 久久久久久亚洲Av无码精品专口| 69成人免费视频| 西西人体大胆免费视频| 亚洲精品乱码久久久久久蜜桃不卡| 日本在线看片免费人成视频1000| 亚洲欧洲日产韩国在线| 国产无遮挡吃胸膜奶免费看视频| 一个人看的www在线免费视频| 日本红怡院亚洲红怡院最新| 免费阿v网站在线观看g| 免费一级全黄少妇性色生活片| 久久久久国产成人精品亚洲午夜| 久久精品视频免费| ass亚洲**毛茸茸pics| 亚洲av无码乱码在线观看野外 | 亚洲Av高清一区二区三区| 国产精品成人免费综合| 中国国产高清免费av片| 亚洲女人影院想要爱| 亚洲?v无码国产在丝袜线观看 | 亚洲无线一二三四区手机| 67pao强力打造高清免费| 深夜A级毛片视频免费| 亚洲视频一区二区在线观看|