设为首页 收藏本站
查看: 1600|回复: 0

[经验分享] 使用CSharp Driver操作Mongodb介绍

[复制链接]

尚未签到

发表于 2015-7-8 11:53:34 | 显示全部楼层 |阅读模式

  • 简介
  使用了一点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_mongo
3.在没有安装其他管理工具的时候,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(COLLECTION)
     .Insert(artist);
//更新
artist.Name = "The Decemberists";
_mongoDatabase.GetCollection(COLLECTION)
     .Save(artist);
//更新一批
_mongoDatabase.GetCollection(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有更多的示例.里面提到了一些使用文档型数据库对象设计的准则

  •      你的对象的模型即是你的数据模型
  •      不要怕你的对象数据冗余
  •      但也不要把所有的数据塞一个文档里
  •      不要怕在文档里保存聚合统计信息

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84471-1-1.html 上篇帖子: mongDB基本命令和Java操作MongoDB 下篇帖子: 「2014-2-6」TokuMX and MongoDB related materials collection
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表