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

[经验分享] MongoDB最新驱动解析

[复制链接]

尚未签到

发表于 2018-10-27 14:58:27 | 显示全部楼层 |阅读模式
  .Net的mongodb驱动最新的官方驱动为1.6.1,本文采用的是最新驱动。
mongodb官方驱动从1.4开始就已经内置了Linq,因此从1.4开始已经不需要使用FluentMongo来扩展mongodb的Linq查询了。 一、mongodb的部署主要有以下三种方式:1. 单点单机(Standalone):官方不推荐在Production上使用Standalone部署方式,当mongodb出现问题,crash时不能提供mongodb服务,导致数据丢失等问题。2. Replica Sets(Master/Slave):三台独立的服务器部署mongodb。采用Relica Sets的好处主要可以缓解读的压力,并对数据提供热备份(“增量备份”),当某台mongodb出现宕机的情况,mongodb集群会自动下线宕机mongodb,继续提供mongodb服务。3. Sharding:三台独立的服务器部署mongodb。Sharding在高并发的情况下,主要解决mongodb写入的问题,对于有大量写入需要的应用来说,采用Sharding能够较好的缓解mongodb写入的压力。 二、mongodb连接根据以上的三种不同的方式,连接字符串也有相应的变化mongodb驱动提供了MongoUrlBuilder类来快速构建连接字符串1.单机示例代码MongoUrlBuilder url = new MongoUrlBuilder();url.ConnectionMode = MongoDB.Driver.ConnectionMode.Direct;url.SafeMode = SafeMode.True;url.Server = MongoServerAddress.Parse("localhost"); 2.Replica Sets示例代码MongoUrlBuilder url = new MongoUrlBuilder();url.ConnectionMode = MongoDB.Driver.ConnectionMode.ReplicaSet;url.DatabaseName = "test";url.ReplicaSetName = "rs0";url.SafeMode = SafeMode.True;url.Servers = new List() { MongoServerAddress.Parse("test-01"), MongoServerAddress.Parse("test-02"), MongoServerAddress.Parse("test-03") }; 3.获取MongoDatabase对象var db = MongoDatabase.Create(url.ToMongoUrl()); 4.获取MongoCollection对象var collection = db.GetCollection("foo"); 注:Replica Sets的状态下只能使用主机名来连接,使用IP地址可能会失败,因为部署Replica Sets的时候是采用主机名指定的,因此采用IP连接会失败。 三、CRUDMongoCollection对象Insert,InsertBatch,Find,Update,Remove方法来完成CRUD操作1.Insertcollection.Insert(model, SafeMode.True); 2.Findcollection.Find(Query.EQ("name", "jack")); 3.Updatecollection.Update(Query.EQ("name", "jack"), Update.Set("Age", 20), SafeMode.True); 4.Removecollection.Remove(Query.EQ("name", "jack"), SafeMode.True); 四、关于mongodb的查询1. 建立索引是必须的,10gen公司建议所有查询尽可能建立在索引字段,利用索引提高查询效率,尽量避免表扫描2. 根据查询的不同需要调整索引的顺序,因为不同的查询,利用索引的方式不同3. 在服务器端执行explain来观察,分析查询的性能,以及当前索引是否合理 *推荐一个VMware的云计算、大数据方面的活动:报名地址

运维网声明 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-627212-1-1.html 上篇帖子: MongoDB的SQL操作语法 下篇帖子: mongodb 学习笔记 一
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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