傳統的關聯式資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由(database)、集合(collection)、文檔對象(document)三個層次組成。MongoDB對於關係型資料庫裡的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。
系列目錄
MongoDB學習筆記(一) MongoDB介紹及安裝
MongoDB學習筆記(二) 通過samus驅動實現基本資料操作
MongoDB學習筆記(三) 在MVC模式下通過Jqgrid表格操作MongoDB資料
MongoDB學習筆記(四) 用MongoDB的文檔結構描述資料關係
MongoDB學習筆記(五) MongoDB檔案存取操作
MongoDB學習筆記(六) MongoDB索引用法和效率分析
一、關於MongoDB的驅動
MongoDB支援多種語言的驅動,在此我們只介紹C#的驅動。僅C#驅動都有很多種,每種驅動的形式大致相同,但是細節各有千秋,因此代碼不能通用。比較常用的是官方驅動和samus驅動。samus驅動除了支援一般形式的操作之外,還支援linq方式操縱資料。各人比較喜歡這種方式。
官方驅動:點擊下載
samus驅動:點擊下載
本篇將從samus驅動入手講解資料庫訪問,國際慣例,存取“Hello World!”。
二、通過samus驅動實現HelloWorld存取
在進行下述操作之前,請先確定MongoDB服務已經開啟,不知道怎麼開啟服務,請看上篇。下載驅動,建立控制台項目,並添加對MongoDB.dll的引用,如果你下載的是驅動源碼,編譯一遍引用產生的DLL即可。
基本代碼如下:
//連結字串string connectionString = "mongodb://localhost";//資料庫名string databaseName = "myDatabase";//集合名string collectionName = "myCollection";//定義Mongo服務Mongo mongo = new Mongo(connectionString);//擷取databaseName對應的資料庫,不存在則自動建立MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;//擷取collectionName對應的集合,不存在則自動建立MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;//連結資料庫mongo.Connect();try{ //定義一個文檔對象,存入兩個索引值對 Document doc = new Document(); doc["ID"] = 1; doc["Msg"] = "Hello World!"; //將這個文檔對象插入集合 mongoCollection.Insert(doc); //在集合中尋找索引值對為ID=1的文檔對象 Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } }); //輸出尋找到的文檔對象中鍵“Msg”對應的值,並輸出 Console.WriteLine(Convert.ToString(docFind["Msg"]));}finally{ //關閉連結 mongo.Disconnect();}
運行程式,成功列印helloword。同時,我們開啟資料檔案夾,發現多了兩個檔案“myDatabase.ns”和“myDatabase.0”。
三、小結
代碼下載:http://files.cnblogs.com/lipan/MongoDB_001.rar
本篇簡潔的講解了基本存取操作,下篇將結合MVC架構通過MongoDB實現model層單個集合的基本增刪查改操作。
作者:李盼(Lipan)
出處:[Lipan] (http://www.cnblogs.com/lipan/)
著作權聲明:本文的著作權歸作者與部落格園共有。轉載時須註明本文的詳細連結,否則作者將保留追究其法律責任。