1. 程式人生 > >在.Net Core中使用MongoDB的入門教程(一)

在.Net Core中使用MongoDB的入門教程(一)

首先,我們在MongoDB的官方文件中看到,MongoDb的2.4以上的For .Net的驅動是支援.Net Core 2.0的。


所以,在我們安裝好了MangoDB後,就可以開始MangoDB的.Net之旅了。

首先,建立一個.Net Core的控制檯應用程式。然後使用NuGet匯入MangoDB的驅動程式。

在官方文件上有介紹,在NuGet中移動有五個.Net 的驅動版本。



Nuget是獲取驅動程式最簡單的方法。在nuget上有5個軟體包可用。


MongoDB.Driver:新的驅動程式。它幾乎沒有任何遺留程式碼,應該用於所有新專案。更多文件可以在參考指南中找到。
MongoDB.Driver.Core:驅動程式的核心和MongoDB.Driver的依賴。你可能不會直接使用這個包。更多文件可以在參考指南中找到。
MongoDB.Driver.GridFS:GridFS包。更多文件可以在參考指南中找到。
MongoDB.Bson:BSON層。它是MongoDB.Driver.Core的依賴。它可以被自己使用。更多文件可以在參考指南中找到。
mongocsharpdriver:從1.x系列升級的相容層。這不應該用於新專案。更多資訊可以在1.x文件中找到。


也可以在github版本庫的release中下載ZIP檔案,通過引用DLL檔案,實現驅動安裝。

需要新增MongoDB.Driver.dll,MongoDB.Driver.Core.dll和MongoDB.Bson.dll三個檔案的引用。

不過,我還是推薦使用Nuget直接安裝MongoDB.Driver。 

安裝好驅動後,我們就可以開始擼程式碼了。

1.建立資料庫連線。

// 使用連線字串連線
var client = new MongoClient("mongodb://localhost:27017");

// 制定多個地址和埠,讓程式自動選擇一個進行連線。
var client = new MongoClient("mongodb://localhost:27017,localhost:27018,localhost:27019");

2.獲取資料庫

為了得到一個數據庫,我們可以使用client的GetDatabase方法獲取資料庫,即使資料庫不存在,也沒有關係,它會在首次使用資料庫的時候進行自動建立。

var database = client.GetDatabase("foo");

3.獲取資料集Collection

我們可以呼叫database的GetCollection<TDocument>方法來獲取資料集,其中如果資料是預先定義好的可以在<輸入資料的型別>  ,如果是沒有定義好的,可以使用BsonDocument型別,BsonDocument表示沒有預定於的模式。

var collection = database.GetCollection<BsonDocument>("bar");

此時,我們將獲取到“foo”資料庫中的“bar”集合,即使“bar”集合不存在也沒有關係,同資料庫一樣,若資料集不存在,會自動建立該資料集。

4.插入資料

獲得了collection資料集後,就可以往資料集中插入資料了,如果我們需要在資料集中插入如下一段JSON檔案

{
     "name": "MongoDB",
     "type": "database",
     "count": 1,
     "info": {
         x: 203,
         y: 102
     }
}

那麼我們可以使用BsonDocument來建立一個這樣的資料型別來表示該Json資料。
var document = new BsonDocument
{
    { "name", "MongoDB" },
    { "type", "Database" },
    { "count", 1 },
    { "info", new BsonDocument
        {
            { "x", 203 },
            { "y", 102 }
        }}
};
要將該document插入到collection中,我們可以使用InsertOne(同步插入)或InsertOneAsync(非同步插入)方法。

InsertOne(同步插入):

collection.InsertOne(document);
InsertOneAsync(非同步插入):
await collection.InsertOneAsync(document);

5.插入多條資料

先使用計算器產生100條BsonDocument資料。

var documents = Enumerable.Range(0, 100).Select(i => new BsonDocument("counter", i));


collection.InsertMany(documents);

await collection.InsertManyAsync(documents);

6,查詢插入檔案個數

在上面的兩個例子中,我們一共插入了101條資料。我們可以使用以下方法,獲取插入的BsonDocument型別資料的條數。

同步獲取:

var count = collection.Count(new BsonDocument());  //產生一個空BsonDocument的過濾器,指對該型別的文件進行計數。
非同步獲取:
var count = await collection.CountAsync(new BsonDocument());    //產生一個空BsonDocument的過濾器,指對該型別的文件進行計數。

好了,今天資料的插入線介紹到這裡,在我下面的部落格中,我會對.Net Core中使用MangoDB進行系統記錄,歡迎大家長期關注。

教程2已更新

在.Net Core中使用MongoDB的入門教程(二)