mongodb中数据库连接类mongoClient与mongo在写策略上的区别

Mongo和MongoClient 两者的关系

1、Mongo和MongoClient类均在mongodb驱动中定义的,因此两者都可以作为数据库连接类。

2、  MongoClient作为官方的默认连接类,其继承了mongo

3、mongo与 mongoClient相比,在写性能上较快,读性能上两者相差不大,这个的主要原因在于,两者的写策略不同

MongoClient 写策略的源码解读

MongoClient 的默认构造函数


带参数的构造函数,执行如下:


在build 方法中 ,创建了mongoClientOption


mongoClientOption 的writeConcern 为写策略


该写策略默认 为acknowledged, 也就是需要写入确认信息


从其注释信息,可以看出这个写策略的解释



Mongo 写策略的源码解读

默认的构造函数为


查看creategacyOptions静态方法  


在MongoClientOptions类的 legacyDefaults()方法中,设置了写策略为


UNACKNOWLEDGED 策略的意思



通过源码解读,发现两者 作为mongodb 数据库连接类,在写策略上是存在不同的,这两种写策略的不同,决定了mongo比mongoClient 的写入要快的多,但是官方已经不建议使用mongo了,那么怎么使用mongoClient 来到达快速写入的目的呢!mongoClient 提供了修改写策略的方法,如下:


,这样就能实现不需要写入返回信息的场景,快速到达写操作。


总结:

本文从源码解读了mongo 和mongoClient 在写策略上的差别,并对mongoClient 进行修策略的修改进行了演示,最重要的就是这两种写策略在什么场景下使用,UNACKNOWLEDGED 在不需要插入返回信息的情况,比如,不需要关心操作是否成功,总共写了多少条数据,ACKNOWLEDGED 写策略则会返回一个WriteResult 对象,保存插入的返回信息。



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coder_jt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值