bulkWrite探秘
MongoDB有很多有趣的内置方法,其中为了批量处理一些写入操作,并且可以按照一定顺序执行,自从3.2版本之后提供了该批量方法:bulkWrite。
它的语法很简单:
db.collection.bulkWrite(
[ <operation 1>, <operation 2>, ... ],
{
writeConcern : <document>,
ordered : <boolean>
}
)
分别解释一下上述参数,
opertion 1, opertion 2:表示写入操作对象,例如插入数据的操作:
{ insertOne: { document: { _id: 3, type: "spider", size: "medium", price: 6 } } },
writeConcern:它表示写入设置,当有多个MongoDB节点(比如三个节点,其中一个primary节点)的时候,我们会定义什么才算是写入成功。从5.0版本之后,默认是{w: ‘majority’},也就是当大多数节点写入完成,则会返回写入结果。比如有三个节点,那么超过一半,也就是2个或者2个以上节点写入成功,则该写入操作才能算成功。
ordered:这个参数为true的时候代表这些写入操作是严格按照顺序串行执行的,也就是先执行operation 1,然后执行operation 2。并且在这个过程中如果有一个操作发生错误,则MongoDB返回结果并不执行剩余的写操作。
当odererd是false,代表这些写操作可以无序地并发执行,当有一个写操作发生错误,则MongoDB会继续执行完其他操作,最后返回错误和异常。
所以可以看出有序方式bulkWrite会比无序方式更慢。
bulkWrite探秘的更多相关文章
- C#服务器获取客户端IP地址以及归属地探秘
背景:博主本是一位Windows桌面应用程序开发工程师,对网络通信一知半解.一日老婆逛完某宝,问:"为什么他们知道我的地址呢,他们是怎么获取我的地址的呢?" 顺着这个问题我们的探秘 ...
- Composer概述及其自动加载探秘
composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具 ...
- 基于AngularJS的个推前端云组件探秘
基于AngularJS的个推前端云组件探秘 AngularJS是google设计和开发的一套前端开发框架,帮助开发人员简化前端开发的负担.AngularJS将帮助标准化的开发web应用结构并且提供了针 ...
- .NET跨平台之旅:探秘 dotnet run 如何运行 .NET Core 应用程序
自从用 dotnet run 成功运行第一个 "Hello world" .NET Core 应用程序后,一直有个好奇心:dotnet run 究竟是如何运行一个 .NET Cor ...
- ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘
开篇:经历了上一篇<aspx与服务器控件探秘>后,我们了解了aspx和服务器控件背后的故事.这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下.然后,再 ...
- ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...
- 探秘Tomcat——连接器和容器的优雅启动
前言: 上篇<探秘Tomcat——启动篇>粗线条的介绍了在tomcat在启动过程中如何初始化Bootstrap类,加载并执行server,从而启动整个tomcat服务,一直到我们看到控制台 ...
- 探秘Tomcat——启动篇
tomcat作为一款web服务器本身很复杂,代码量也很大,但是模块化很强,最核心的模块还是连接器Connector和容器Container.具体请看下图: 从图中可以看出 a. 高亮的两块是Conne ...
- 探秘Tomcat——从一个简陋的Web服务器开始
前言: 无论是之前所在实习单位小到一个三五个人做的项目,还是如今一个在做的百人以上的产品,一直都能看到tomcat的身影.工作中经常遇到的操作就是启动和关闭tomcat服务,或者修改了摸个java文件 ...
- 【字符编码】Java编码格式探秘
一.前言 在分析Comparable和Comparator的时候,分析到了String类的compareTo方法,String底层是用char[]数组来存放元素,在比较的时候是比较的两个字符串的字符, ...
随机推荐
- 改善与提高linux系统的音质
当初装Linux系统的时候,我就发现了,deepin和ubuntu的linux平台音质和Windows平台下的音质不一样.硬件参数没变,歌曲音频文件相同的情况下,linux播放歌曲的时候动态和音乐细节 ...
- 循序渐进讲解负载均衡vivoGateway(VGW)
作者:vivo 互联网运维团队- Duan Chengping 在大规模业务场景中,已经不可能通过单机提供业务,这就衍生出了负载均衡的需求.为了满足合适可靠的负载,本文将从简单的基础需求出发,一步步推 ...
- day3 函数的定义和调用,练习编写简单的程序(记录1)
一.函数的定义 可以分为以下两种: 1.函数声明和函数定义分离 这种方法将函数声明和函数定义分开,通常在头文件中先声明函数原型,然后在源文件中实现函数定义. 例如,头文件 example.h 中声明了 ...
- Numpy数组乘法
Numpy数组乘法 元素级乘法 numpy.multiply() 或 * : 数组对应位置元素相乘 import numpy as np # 一维数组 a = np.array([1, 2, 3, 4 ...
- The first week match's conclusion
自我声讨(不是 这周比赛有难也有易,但是我都是写得很少,摸鱼实在太严重,当然技术不到位也是一个方面,主要还是自己的问题.不再讨论 这周比赛学到.用到的的语法如下 快读 int read() { int ...
- RDIFramework.NET WinForm版新增报表管理功能模块
在Web版本中有报表管理功能模块,非常实用的功能,重量级推荐.在WinForm应用中,我们也增加了支持."报表管理"模块主要用于对日常常用的报表做定制展示,可以自动发布到模块,同时 ...
- 当 Amazon Lambda 遇上 Apache APISIX 可以擦出什么火花?
本文首先介绍了什么是 Serverless,以及为什么需要 Serverless:其次,讲述了一个好的网关在 Serverless 架构下的重要性,而 APISIX 就是这样的一个网关:最后,本文重点 ...
- Linux rsyslogd服务学习
本篇笔记来自该博客: http://c.biancheng.net/view/1097.html 服务简介 在CentOS 6.x 中日志服务已经由 rsyslogd 取代了原先的 syslogd.r ...
- Analysis of Variance ANOVA versus T test 方差分析和T检验
Levels are different groupings within the same independent variable(factor). Eg. if the independent ...
- 利用Velero对K8S备份还原与集群迁移实战
一.简介 Velero 是一款云原生时代的灾难恢复和迁移工具,采用 Go 语言编写,并在 github 上进行了开源,利用 velero 用户可以安全的备份.恢复和迁移 Kubernetes 集群资源 ...