使用CSharp Driver操作Mongodb介紹

來源:互聯網
上載者:User
  • 簡介

使用了一點Mongodb ,以下是自己的一點心得體會:

不提及他的分步式,效率等特性.至少以下一些特點.讓我感覺沒有必要再在普通應用情境再使用關係型資料庫如:SQLServer那樣的資料庫了.

1.     省去了ORM:如NHibernate是一個優秀的ORM,效能也很好.但你得學習NHibernate的運算式文法.像NH那種文檔健全的尚可接受.

        我還有一些更可怕的經曆,寫過很多用預存程序查詢後手動映射成對象的代碼.完全肉搏哦.
2.     綠色的:Mongodb,如果你不想註冊成服務,只要啟動那個exe就行了.資料庫和資料庫Data檔案完全拷貝就可以遷移了.
3.     GridFS.把檔案直接存在資料庫裡
4.     各種程式設計語言驅動支援.
官方支援的:
C
C# and .NET
C++
Erlang
Haskell
Java
Javascript
Perl 


開源社區支援的更多:
不列舉了,很多語言沒聽說過.連小眾的火星語言也都支援了呀.

Mongodb 官方網站: http://www.mongodb.org/downloads
C# 的Mongodb的Driver 版本也很多.本文只介紹mongodb官方網站上Csharp Driver.這個Driver 是目前C#中,使用人數最多的,支援最完善的一個,支援MapReduce,但目前最新版本尚不支援Linq 方式查詢.需要構建Query 運算式來查詢,不那麼直觀,這個有點OUT.具體見:http://www.mongodb.org/display/DOCS/CSharp+Language+Center

  • 推薦的兩個管理工具

1.     MongoVUE : 介面較為直觀,易用.但只有商業版,可以試用
2.     RockMongo: PHP+NGinx 免費,目前我用過幾個中,最為靠譜一個了.http://code.google.com/p/rock-php/wiki/rock_mongo3.在沒有安裝其他管理工具的時候,Mongodb內建了一個Shell.mongo.exe 

  • CRUD 操作樣本: (範例程式碼摘的.比我自己寫的好)
串連資料庫 //MongoServer manages access to MongoDatabase
MongoServer mongoServer =      MongoServer.Create("mongodb://localhost:27017");
   
//MongoDatabase used to access MongoCollection instances
_mongoDatabase = mongoServer.GetDatabase("CodeCamp");
string COLLECTION="Artists";
var artist = new Artist() { Name = "The Decembrists" };

//直接插一個對象哦,
_mongoDatabase.GetCollection<Artist>(COLLECTION)
     .Insert(artist);

//更新
artist.Name = "The Decemberists";
_mongoDatabase.GetCollection<Artist>(COLLECTION)
     .Save(artist);
//更新一批
_mongoDatabase.GetCollection<Artist>(COLLECTION).Update(
    Query.EQ("Name", "The Decemberists"),
    Update.PushAll("Albums", "Castaways and Cutouts", "Picaresque", "Hazards of Love", "The Crane Wife")
);

更多更複雜的玩法:見

http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial一個詳細介紹的PPT:https://skydrive.live.com/?cid=4c2acd76fe2dcc19&sc=documents&id=4C2ACD76FE2DCC19%21237&retry#!/view.aspx/.Public/NYC-Code-Camp-2011-DotNet-MongoDB.pptx?cid=4c2acd76fe2dcc19&sc=documents
  • 其他:
附件的PPT有更多的樣本.裡面提到了一些使用文檔型資料庫物件設計的準則
  •      你的對象的模型即是你的資料模型
  •      不要怕你的對象資料冗餘
  •      但也不要把所有的資料塞一個文檔裡
  •      不要怕在文檔裡儲存彙總統計資訊
相關文章

聯繫我們

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