這篇文章主要介紹了怎么在.NET中使用MongoDB以及基本的CRUD操作,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)若羌免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
MongoDB
NOSQL是一種面向文檔的數(shù)據(jù)庫(kù)系統(tǒng),以特定的格式儲(chǔ)存,如JSON。MongoDB是當(dāng)前NoSQ數(shù)據(jù)庫(kù)產(chǎn)品中最熱門的一種,它具高性能、易部署、易使用的特點(diǎn),以及豐富的輕量級(jí)二進(jìn)制格式。 MongoDB最大的特點(diǎn)是支持的查詢語(yǔ)言非常強(qiáng)大,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引,是一個(gè)面向集合的,模式自由的文檔型數(shù)據(jù)庫(kù)。
本文將詳細(xì)介紹MongoDB的安裝、.NET應(yīng)用程序中的MongoDB(C#代碼)的使用以及演示基本的CRUD操作
MongoDB的優(yōu)點(diǎn)
方便儲(chǔ)存大量結(jié)構(gòu)簡(jiǎn)單的數(shù)據(jù)
速度快,適用于大而復(fù)雜的數(shù)據(jù)環(huán)境
在云上有很高的靈活性和可用性
很容易擴(kuò)展
使用MongoDB的動(dòng)態(tài)模式,可以實(shí)現(xiàn)快速開發(fā)
MongoDB不會(huì)將數(shù)據(jù)保存在行中,所有數(shù)據(jù)都儲(chǔ)存在單個(gè)文檔中。從程序員的角度看,MongoDB可以處理純JSON文件。詳見如下MongoDB文檔示例:
{ "employeeid" : ObjectId("R8rGt541b1ad7d0c4rcfgt7549"), "employeename" : "Tapas Pal", "department" : "IT", "numberOfArticles" : 50, "Address" : [ "street" : "Some Street", "city" : "Kolkata", "country" : "India" ], "companyname" : "XYZ", "skills" : [".NET", "JavaScript", "NoSQL", "Node.js", "HTML"] }
MongoDB 是一個(gè)免費(fèi)的開源數(shù)據(jù)庫(kù),你可以從特定的鏈接去下載。MongoDB還提供了一個(gè)很大的驅(qū)動(dòng)程序列表,方便不同編程語(yǔ)言與數(shù)據(jù)庫(kù)之間的通信。如果要與.NET一起使用,則需要從NuGet包安裝驅(qū)動(dòng)程序。NET驅(qū)動(dòng)程序包括MongoDB.Bson,MongoDB.Driver和MongoDB.Driver.Core。
現(xiàn)在,讓我們創(chuàng)建一個(gè).NET控制臺(tái)應(yīng)用程序來(lái)演示MongoDB上的CRUD操作。在運(yùn)行mongod.exe是要確保提示命令顯示一切正常,以便在執(zhí)行控制臺(tái)應(yīng)用程序時(shí)保持MongoDB服務(wù)器正常運(yùn)行。
打開Visual Studio并創(chuàng)建一個(gè)C??刂婆_(tái)應(yīng)用程序項(xiàng)目。將其命名為MongoDBConsoleApp。
圖1:新的控制臺(tái)應(yīng)用程序
步驟2
安裝MongoDB.NET驅(qū)動(dòng)程序。單機(jī)右鍵解決方案,進(jìn)入“Manage NuGet Packages.”, 然后在搜索欄中,輸入“MongoDB”顯示出安裝包,進(jìn)行安裝。詳見下圖:
圖2:“Manage NuGet Packages”鏈接
圖3:包管理器輸出
在Program.cs文件中添加以下命名空間,該名稱空間用于連接MongoDB和CRUD操作。
using MongoDB.Driver; using MongoDB.Bson;
接下來(lái),編寫代碼到CRUD操作。此示例中,將使用BsonDocument類對(duì)象將數(shù)據(jù)存儲(chǔ)在MongoDB數(shù)據(jù)庫(kù)中。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Bson; namespace MongoDBConsoleApp { class Program { static void Main(string[] args) { try { MongoClient MongodbClient = new MongoClient("mongodb://127.0.0.1:27017"); // Get Database and Collection IMongoDatabase Mongodb = MongodbClient.GetDatabase("MyDatabase"); var MongodbcollList = Mongodb.ListCollections().ToList(); Console.WriteLine("The MongoDB list of collections are :"); foreach (var item in MongodbcollList) { Console.WriteLine(item); } var mydocument = Mongodb.GetCollection("mydocument"); create(Mongodb, mydocument); update(Mongodb, mydocument); delete(Mongodb, mydocument); var myresultDoc = mydocument.Find(new BsonDocument()).ToList(); foreach (var myitem in myresultDoc) { Console.WriteLine(myitem.ToString()); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } static void create(IMongoDatabase Mongodb, var mydocument) { BsonElement employeename = new BsonElement("employeename", "Tapas Pal"); BsonDocument empployee = new BsonDocument(); empployee.Add(employeename); empployee.Add(new BsonElement("employeenumber", 123)); mydocument.InsertOne(empployee); } static void update(IMongoDatabase Mongodb, var mydocument) { // UPDATE BsonElement updateemployee = new BsonElement("employeename", "Tapas1 Pal1"); BsonDocument updateemployeedoc = new BsonDocument(); updateemployeedoc.Add(updateemployee); updateemployeedoc.Add(new BsonElement("employeenumber", 1234)); BsonDocument findemployeeDoc = new BsonDocument(new BsonElement("employeename", "Tapas Pal")); var updateDoc = mydocument.FindOneAndReplace (findemployeeDoc, updateemployeedoc); Console.WriteLine(updateDoc); } static void delete(IMongoDatabase Mongodb, var mydocument) { // DELETE BsonDocument findAnotheremployee = new BsonDocument(new BsonElement("employeename", "Tapas1 Pal1")); mydocument.FindOneAndDelete(findAnotheremployee); } } }
在前面的代碼方法中,作者檢索了當(dāng)前的數(shù)據(jù)庫(kù)集合,然后創(chuàng)建了一個(gè)BsonDocument對(duì)象,用于存儲(chǔ)員工數(shù)據(jù)。
在create方法中,作者展示了如何創(chuàng)建一個(gè)BsonElement對(duì)象變量來(lái)存儲(chǔ)員工對(duì)象關(guān)鍵值,然后將該對(duì)象添加到BsonDocument中。
在update方法中,作者直接將對(duì)象作為參數(shù)傳遞,并且找到了員工名稱來(lái)更新詳細(xì)信息。
在 delete方法中,作者刪除了之前創(chuàng)建的員工。
最后,顯示整個(gè)列表。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么在.NET中使用MongoDB以及基本的CRUD操作”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!