在C#中使用官方驅動操作MongoDB


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:

  1. 使用 BsonDocument 模型
  2. 使用自定義的實體模型

如果我們的文檔結構比較復雜,或者定義為實體模型比較困難,那么推薦使用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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM