Mongodb的Bulk Write 操作
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文来自与自己的博客:www.wangerbao.comBulk Write Operations操作是mongodb3.2的新增功能,语法如下:db.collection.bulkWrite(
千家信息网最后更新 2026年11月03日Mongodb的Bulk Write 操作
本文来自与自己的博客:www.wangerbao.com
Bulk Write Operations操作是mongodb3.2的新增功能,语法如下:
db.collection.bulkWrite( [, , ... ], { writeConcern : , ordered : })
其中ordered是个需要注意的地方,根据官方描述:
默认是ture,也就是按照顺序插入数据,如果中间出现错误则不会在继续执行
如果是false,则mongo会采用并发的方式插入数据,中间出现错误对后续操作无影响
事例如下
初始化数据,初始化3条
> db.log.count();0> db.log.bulkWrite( [... { insertOne : { "document" : {"_id" : 1, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } },... { insertOne : { "document" : {"_id" : 2, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } },... { insertOne : { "document" : {"_id" : 3, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } }... ],{ordered:true});{ "acknowledged" : true, "deletedCount" : 0, "insertedCount" : 3, "matchedCount" : 0, "upsertedCount" : 0, "insertedIds" : { "0" : 1, "1" : 2, "2" : 3 }, "upsertedIds" : { }}> db.log.count();3order默认:true,第二条数据主键冲突,则只会插入第一条数据,数据总量为4
第二条数据主键冲突,则只会插入一条数据> db.log.bulkWrite( [... { insertOne : { "document" : {"_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } },... { insertOne : { "document" : {"_id" : 2, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } },... { insertOne : { "document" : {"_id" : 5, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } }... ],{ordered:true});2017-04-10T17:48:37.960+0800 E QUERY [thread1] BulkWriteError: write error at item 1 in bulk operation :BulkWriteError({ "writeErrors" : [ { "index" : 1, "code" : 11000, "errmsg" : "E11000 duplicate key error collection: c_log.log index: _id_ dup key: { : 2.0 }", "op" : { "_id" : 2, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } ], "writeConcernErrors" : [ ], "nInserted" : 1, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ]})BulkWriteError@src/mongo/shell/bulk_api.js:372:48BulkWriteResult/this.toError@src/mongo/shell/bulk_api.js:336:24Bulk/this.execute@src/mongo/shell/bulk_api.js:1173:1DBCollection.prototype.bulkWrite@src/mongo/shell/crud_api.js:191:20@(shell):1:1> db.log.count();4order修改为false,第一条数据主键冲突,2、3条没问题,则数据总量为6
> db.log.bulkWrite( [... { insertOne : { "document" : {"_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } },... { insertOne : { "document" : {"_id" : 6, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } },... { insertOne : { "document" : {"_id" : 5, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } }... ],{ordered:false});2017-04-10T17:49:36.539+0800 E QUERY [thread1] BulkWriteError: write error at item 0 in bulk operation :BulkWriteError({ "writeErrors" : [ { "index" : 0, "code" : 11000, "errmsg" : "E11000 duplicate key error collection: c_log.log index: _id_ dup key: { : 4.0 }", "op" : { "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4 } } ], "writeConcernErrors" : [ ], "nInserted" : 2, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ]})BulkWriteError@src/mongo/shell/bulk_api.js:372:48BulkWriteResult/this.toError@src/mongo/shell/bulk_api.js:336:24Bulk/this.execute@src/mongo/shell/bulk_api.js:1173:1DBCollection.prototype.bulkWrite@src/mongo/shell/crud_api.js:191:20@(shell):1:1> db.log.count();6
数据
冲突
总量
错误
也就是
事例
功能
博客
地方
官方
方式
语法
问题
顺序
无影
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
哈尔滨大商圈互联网科技有限公司
互联网科技公司经营范围
广州百单互联网科技有限公司
互联网 卓越科技
中国互联网科技发展
互联网科技的英文
小马过河互联网科技
丰台科技园 互联网
万达互联网科技
深圳艾佳互联网科技
撒么互联网科技公司
新华互联网科技校企合作
顺网科技2021年互联网排名
济南华为互联网科技产业总部基地
合肥互联网科技公司公章图片
安徽零酒互联网科技有限公司
亚光科技低轨卫星互联网
上海互联网科技园景观
互联网 科技节活动 微视频大赛
佰商互联网科技有限公司
互联网巨头投资的硬核科技
深圳互联网科技怎么样
互联网科技公司招聘
阿里互联网科技公司
银川新华互联网科技学校联系电话
互联网金融科技展
互联网科技和法律行业
互联网科技实习生岗位
普陀区互联网教育科技管理办法