C#訪問MongoDB資料

來源:互聯網
上載者:User

標籤:

開始:

先下載個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:[email protected]]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 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:猛擊這裡]

C#訪問MongoDB資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.