標籤:
MongoDB的官方驅動:https://github.com/mongodb/mongo-csharp-driver/releases
目前最新的版本是2.10,支援.NET 4.5以上。由於我現在的程式還在.NET4.0上面構建,所以這裡使用1.10.1版本。
添加引用
解壓下載到的驅動,然後在我們的程式中添加引用:
MongoDB.Bson.dll
MongoDB.Driver.dll
然後在代碼中添加Using:
using MongoDB.Bson;using MongoDB.Driver;
建立Client、Server、Database
var connectionString = "mongodb://localhost:27017";var client = new MongoClient(connectionString);var server = client.GetServer();var db = server.GetDatabase("mydb");
connectionString可以從設定檔中擷取。
client對象是安全執行緒的,那麼,我們可以把它存到一個全域的變數中。
有了db對象,我們就可以進行訪問了。
使用Collection
Collection是文檔(document)的集合,可以理解為我們的資料表。而每一個文檔就是我們的一行資料。在MongoDB的驅動中,我們有兩種方式來使用Collection:
- 使用 BsonDocument 模型
- 使用自訂的實體模型
如果我們的文檔結構比較複雜,或者定義為實體模型比較困難,那麼推薦使用BsonDocument模型。
如果我們的文檔結構清晰,儲存的欄位也是固定的,那麼推薦使用自訂的實體模型。實體物件的格式如下:
public class Entity{ public ObjectId Id { get; set; } public string Name { get; set; }}
我們在擷取Collection引用的時候,需要提供一個文件類型:
var collection = db.GetCollection<Entity>("entities");
CURD操作
在有了Collection之後,我們可以寫一個CURD的例子:
var collection = db.GetCollection<Entity>("entities");var entity = new Entity { Name = "Tom" };collection.Insert(entity);var id = entity.Id;var query = Query<Entity>.EQ(e => e.Id, id);entity = collection.FindOne(query);entity.Name = "Dick";collection.Save(entity);var update = Update<Entity>.Set(e => e.Name, "Harry");collection.Update(query, update);collection.Remove(query);
齊飛([email protected])
原文連結:http://www.qeefee.com/article/000559
在C#中使用官方驅動操作MongoDB