程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> mongoDB C# 驅動快速入門

mongoDB C# 驅動快速入門

編輯:C#入門知識

添加 C# 驅動 DLL引用   在Visual Studion解決方案資源管理器的“引用”目錄上右鍵,選擇“添加引用……”。找到C#驅動DLL所在目錄,添加以下DLL引用:   1. MongoDB.Bson.dll 2. MongoDB.Driver.dll   還可以用NuGet程序包管理器來添加 C# 驅動包到你的解決方案中。   添加必需的using語句   你至少需要以下using語句:   using MongoDB.Bson; using MongoDB.Driver; 另外,通常還會用到以下一個或多個using語句:   using MongoDB.Driver.Builders; using MongoDB.Driver.GridFS; using MongoDB.Driver.Linq; 還有一些命名空間只在特殊場合用的上。   獲取客戶端對象引用   獲取一個客戶端對象引用的最簡單方法就是使用連接字符串了:   var connectionString = "mongodb://localhost"; var client = new MongoClient(connectionString); 如果想在全局變量中存儲該客戶端對象,沒問題,MongoClient是線程安全的。   獲取服務端對象引用   要從客戶端對象獲取服務端對象引用,這麼寫:   var server = client.GetServer(); 獲取數據庫對象引用   要從服務端對象獲取數據庫對象引用,這麼寫:   var database = server.GetDatabase("test"); // "test" 是數據庫名稱 如果要使用多於一個的數據庫,為每一個你想使用的數據庫再次調用 GetDatabase 即可。   決定是使用 BsonDocument 對象還是你自己的類。   有兩種使用集合的方法:   1. 使用 BsonDocument 對象模型 2. 使用自己的實體類   如果數據格式很隨意,很難或不可能定義成實體類的話,那就使用 BsonDocument 對象模型。   由於使用自己的實體類更容易得多,所以本文將假定你采用的是這種方法。 你的實體類必須有以下要求:   1. 具有無參構造函數 2. 對於要存儲在數據庫裡的數據,需定義公共的讀/寫字段或屬性   這些要求與.NET的XmlSerializer對類的要求本質上是一樣的。   另外,如果實體類將作為根級文檔,那它必須包含一個Id字段或屬性(通常命名為“Id”,即使有需要你可以重寫它)。通常Id的類型為ObjectId。   獲取集合對象引用   為了演示,假設你用的是名為Entity的實體類。要獲取包含Entity文檔的集合引用,可以像這樣寫:   var collection = database.GetCollection<Entity>("entities"); // "entities" 是集合的名稱 插入一個文檔   插入文檔很簡單:   var entity = new Entity { Name = "Tom" }; collection.Insert(entity); var id = entity.Id; // 如有必要,Insert 會設置Id的值(這個例子就是如此) 查找已有文檔   在本例中,假設我們已經知道Id的值,去找它對應的Entity:   var query = Query.EQ("_id", id); var entity = collection.FindOne(query); Query.EQ 是用 Query builder 類來幫你創建查詢。 "_id" 是存在數據庫中的字段名(通常數據庫中的字段名跟你實體類 的字段或屬性名是一樣的,但Id是一個例外,它映射為數據庫中的”_id“)。   其它的查詢操作包括: GT, GTE, In, LT, LTE, Near, NE, And, Or (和一些其它更專用的).   保存文檔   可以像這樣保存一個現有文檔的修改:   entity.Name = "Dick"; collection.Save(entity); 更改現有的文檔   Update是另一種Save。不同在於 Save 將整個文檔回傳給服務端,但Update只發送更改的部分。例如:   var query = Query.EQ("_id", id); var update = Update.Set("Name", "Harry"); // 更新修飾符 collection.Update(query, update); 本例使用 Update builder 來簡單地創建更新修飾符。   移除已有的文檔   要從集合中移除已有的文檔,這麼寫:   var query = Query.EQ("_id", id); collection.Remove(query); 不需要調用 Connect 或者 Disconnect   C# 驅動有一個連接池來高效地使用與服務端的連接。不需要調用 Connect 或者 Disconnect;只需讓驅動來管理連接即可 (調用 Connect 沒什麼害處,但調用 Disconnect 就比較糟糕了,因為它會關閉連接池裡所有的連接)。   完整的例子程序   using System; using System.Collections.Generic; using System.Linq; using System.Text;   using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.Builders;     namespace ConsoleApplication1 {     public class Entity     {         public ObjectId Id { get; set; }         public string Name { get; set; }     }       class Program     {         static void Main(string[] args)         {             var connectionString = "mongodb://localhost";             var client = new MongoClient(connectionString);             var server = client.GetServer();             var database = server.GetDatabase("test");             var collection = database.GetCollection<Entity>("entities");               var entity = new Entity { Name = "Tom" };             collection.Insert(entity);             var id = entity.Id;               var query = Query.EQ("_id", id);             entity = collection.FindOne(query);               entity.Name = "Dick";             collection.Save(entity);               var update = Update.Set("Name", "Harry");             collection.Update(query, update);               collection.Remove(query);         }     } }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved