MongoDB資料訪問[C#]

來源:互聯網
上載者:User

我們要開始最簡單的MongoDB串連,訪問資料之旅了。在這之前,您已經安裝MongoDB了吧!也許、大概、應該是裝了。真的還沒裝好?那麼:猛擊這裡[MongoDB安裝]

開始:

先下載個C#的驅動。MongoDB提供各種主流與非主流預言的開發驅動。

C# Driver :猛擊這裡

CSharp Driver Tutorial:猛擊這裡

下載檔案安裝或者解壓縮包

如果您是安裝,請到安裝位置尋找,如果是ZIP壓縮包,解壓縮包得到如下兩個檔案:

  1. MongoDB.Bson.dll              :序列化、Json相關
  2. MongoDB.Driver.dll             :我們的驅動

沒了,只有這兩個檔案是我們的最愛。

 

繼續:

建立一個C#的項目,不管你是vs2008,還是vs2010,也許您手中有vs2012?也發給我一份吧。感謝共用:)

添加引用,將上面兩個DLL引入到項目裡面

 

您啟動Mongod.exe了嗎?不記得它是什麼了?猛擊這裡。啟動服務。

 

代碼裡面添加命名空間:

using MongoDB.Bson;
using MongoDB.Driver;

跟著[CSharp Driver Tutorial:猛擊這裡]繼續做。如果您沒有開啟[CSharp Driver Tutorial]就不要開了,看完全文再看,以免分散精力。

// MongoDB串連串,以[mongodb://]開頭。這裡,我們串連的是原生服務
string connectionString = "mongodb://localhost";
// 串連到一個MongoServer上
MongoServer server = MongoServer.Create(connectionString);
  1. MongoDb的串連串
    • 在串連串中,我們可以指定其他機器上的服務和串連連接埠格式如下:
    • mongodb://[username:password@]hostname[:port][/[database][?options]]
    • 簡單樣本:mongodb://server1,server2:27017,server2:27018
    • 更進一步詳細的資訊請查看[CSharp Driver Tutorial:猛擊這裡]
  2. MongoServer
    • 有幾種不同的重載了的建立方式:
    • MongoServer Create()   如果只是串連本機,並且本機只啟動了一個服務,直接調用這個方法,完全不需要串連串
    • MongoServer Create(MongoConnectionStringBuilder builder)
    • MongoServer Create(MongoUrl url)
    • MongoServer Create(string connectionString)
    • MongoServer Create(Uri uri)
    • 更進一步詳細的資訊請查看[CSharp Driver Tutorial:猛擊這裡]

繼續:

再增加幾行代碼:

 

// MongoDB串連串,以[mongodb://]開頭。這裡,我們串連的是原生服務
string connectionString = "mongodb://localhost";
// 串連到一個MongoServer上
MongoServer server = MongoServer.Create(connectionString);            
// -------------------------------------------------------------------------
// 開啟資料庫testdb
MongoDatabase db = server.GetDatabase("testdb");
// 擷取集合employees
MongoCollection collection = db.GetCollection("employees");
  1. server.GetDatabase("testdb")

    • 開啟資料庫:testdb
    • 我沒有testdb庫啊??不要擔心,不要疑惑,不要在這個問題上浪費時間,如果沒有這個庫存在,MongoDB會自動替你建立它的
  2. db.GetCollection("employees")
    • 擷取集合:employees
    • 好吧有了前一個教訓,管他呢,愛存在不存在,MongoDB的開發人員都會替我們建立吧?

繼續: 

// MongoDB串連串,以[mongodb://]開頭。這裡,我們串連的是原生服務
string connectionString = "mongodb://localhost";
// 串連到一個MongoServer上
MongoServer server = MongoServer.Create(connectionString);            
// -------------------------------------------------------------------------
// 開啟資料庫testdb
MongoDatabase db = server.GetDatabase("testdb");
// 擷取集合employees
MongoCollection collection = db.GetCollection("employees");// -------------------------------------------------------------------------            
// 建立一個employee
BsonDocument employee = new BsonDocument 
{
  { "name", "Ernest Hemingway" },
  { "title", "For Whom the Bell Tolls" }
};
// 把它寫到上面那個集合裡面去
collection.Insert(employee);

 如果您的程式沒有拋出任何異常,那麼資料已經進去了。不知到BsonDocument是個啥東西?

看個簡單的例子吧:

BsonDocument document = new BsonDocument {
        { "name", name },
        { "city", city }, // not added if city is null
        { "dob", dob, dobAvailable } // not added if dobAvailable is false
    };
它以索引值對的方式、JSON的格式,儲存資料。MongoDB通過BsonDocument套BsonDocument的方式,使您可以儲存複雜格式的資料。

  • 有一些重要的概念,看完文章以後,你一定要去過一遍:BsonType、BsonValue、BsonElement、BsonDocument、MongoServer、MongoDatabase、MongoCollection
  • 在這裡: [CSharp Driver Tutorial:猛擊這裡]

 繼續:

最後幾行小代碼:

// -------------------------------------------------------------------------
// 查詢上面那個剛剛插進去的資料,就這格式了,看看QueryDocument的文檔吧
var query = new QueryDocument("name", "Ernest Hemingway");            
// 遍曆結果
foreach (BsonDocument emp in collection.Find(query))
{
    // BsonValue有兩種取值方式,下面兩個都用了一個是AsXXX,一個是ToXXX
    Console.WriteLine("name:{0}\ttitle:{1}", emp["name"].AsString, emp["title"].ToString());
}
  1. QueryDocument

    • MongoCollection<BsonDocument> books;
          var query = Query.And(
              Query.EQ("author", "Kurt Vonnegut"),
              Query.EQ("title", "Cats Craddle")
          );
    • 不解釋了,查詢的各種細節用法看各種文檔吧(因為我還沒看呢,解釋不了,呵呵)。作為第一步,這裡知道有這個東西,量和細節的積累在不斷的實踐中獲得。[CSharp Driver Tutorial:猛擊這裡]
  2. BsonValue 的取值
    • emp["name"].AsString 這是第一種取值方式。相關的有AsInt32,AsBoolean等等
    • emp["title"].ToString() 這是第二種取值方式。相關的有ToInt32,ToBoolean等等
    • 請注意細節:
    • AsXXX取值方式,如果類型不一致,可以拋出異常InvalidCastException
    • ToXXX取值方式,不會拋出異常,會返回預設值。[CSharp Driver Tutorial:猛擊這裡]

至此,您已經完成第一次C#程式訪問MongoDB的全過程。開發中的其他方法及細節是個不斷的積累過程。成功的邁出第一步之後,祝您越走越遠。

PS:羅嗦貼已經完成了。

再次重申,重要概念:

BsonType、BsonValue、BsonElement、BsonDocument、MongoServer、MongoDatabase、MongoCollection

一定要看。[CSharp Driver Tutorial:猛擊這裡]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.