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);
