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);
作者:齊飛(youring2@gmail.com)