MongoDB使用Bulk批量更新操作
概述
MongoDB支持执行批量更新和插入操作,允许在一次操作中插入或检索多个文档。通过使用Batch接口,减少客户端和数据库之间的调用次数,可以显著提高数据库访问性能。
本文将演示如何使用MongoDBShell和Java代码两种方式实现文档的批量更新。数据库初始化
首先,我们需要连接到mongoshell:mongohostlocalhostport27017
建立一个数据库testDb和一个populations集合:usetestDb;db。createCollection(populations);
使用insertMany方法将一些样本数据添加到集合中:db。populations。insertMany(〔{cityId:1124,cityName:NewYork,countryName:UnitedStates,continentName:NorthAmerica,population:22},{cityId:1125,cityName:MexicoCity,countryName:Mexico,continentName:NorthAmerica,population:25},{cityId:1126,cityName:NewDelhi,countryName:India,continentName:Asia,population:45},{cityId:1134,cityName:London,countryName:England,continentName:Europe,population:32}〕);
执行上述insertMany查询将返回以下文档:{acknowledged:true,insertedIds:〔ObjectId(623575049d55d4e137e477f6),ObjectId(623575049d55d4e137e477f7),ObjectId(623575049d55d4e137e477f8),ObjectId(623575049d55d4e137e477f9)〕}使用MongoDBShell查询
MongoDB的批量操作生成器用于为单个集合批量构建写操作列表,可以使用insert、update、replace和remove等方法执行不同类型的操作:db。populations。bulkWrite(〔{insertOne:{document:{cityId:1128,cityName:Kathmandu,countryName:Nepal,continentName:Asia,population:12}}},{insertOne:{document:{cityId:1130,cityName:Mumbai,countryName:India,continentName:Asia,population:55}}},{updateOne:{filter:{cityName:NewDelhi},update:{set:{status:HighPopulation}}}},{updateMany:{filter:{cityName:London},update:{set:{status:LowPopulation}}}},{deleteOne:{filter:{cityName:MexicoCity}}},{replaceOne:{filter:{cityName:NewYork},replacement:{cityId:1124,cityName:NewYork,countryName:UnitedStates,continentName:NorthAmerica,population:28}}}〕);
上述bulkWrite查询将返回以下文档:{acknowledged:true,deletedCount:1,insertedCount:2,matchedCount:3,upsertedCount:0,insertedIds:{0:ObjectId(623575f89d55d4e137e477f9),1:ObjectId(623575f89d55d4e137e477fa)},upsertedIds:{}}使用Java进行批量操作
首先创建一个MongoClient连接:MongoClientmongoClientnewMongoClient(localhost,27017);MongoDatabasedatabasemongoClient。getDatabase(testDb);MongoCollectionDocumentcollectiondatabase。getCollection(populations);
使用Java代码实现相同的批量操作:ListWriteModelDocumentwriteOperationsnewArrayListWriteModelDocument();writeOperations。add(newInsertOneModelDocument(newDocument(cityId,1128)。append(cityName,Kathmandu)。append(countryName,Nepal)。append(continentName,Asia)。append(population,12)));writeOperations。add(newInsertOneModelDocument(newDocument(cityId,1130)。append(cityName,Mumbai)。append(countryName,India)。append(continentName,Asia)。append(population,55)));writeOperations。add(newUpdateOneModelDocument(newDocument(cityName,NewDelhi),newDocument(set,newDocument(status,HighPopulation))));writeOperations。add(newUpdateManyModelDocument(newDocument(cityName,London),newDocument(set,newDocument(status,LowPopulation))));writeOperations。add(newDeleteOneModelDocument(newDocument(cityName,MexicoCity)));writeOperations。add(newReplaceOneModelDocument(newDocument(cityId,1124),newDocument(cityName,NewYork)。append(cityName,UnitedStates)。append(continentName,NorthAmerica)。append(population,28)));BulkWriteResultbulkWriteResultcollection。bulkWrite(writeOperations);System。out。println(bulkWriteResult:bulkWriteResult);
首先创建了一个writeModel列表,将所有不同类型的写操作添加到一个更新列表中。此外,我们在查询中使用了InsertOneModel、UpdateOneModel、UpdateManyModel、DeleteOneModel和ReplaceOneModel。最后,bulkWrite方法一次执行了所有的操作。结论
MongoDB的Bulk批量操作详细资料可以参考:https:www。mongodb。comdocsmanualcorebulkwriteoperations
交广会客厅城市暂停下的他们加速前行4组8道接11003次现车49辆,无调中转,换挂机车一次作业,现场作业注意安全。4道进车,临线作业注意安全。嘉峪关车辆段运用车间待检室内对讲机的嘈杂声与窗外疫情管控中的城市形成了鲜
凝心聚力抓落实团结奋进谱新篇来源央视网央视网消息(新闻联播)连日来,中央和国家机关以多种形式全面深入学习党的二十大精神,认真领悟新思想新部署新要求。大家表示,在新征程上,要更加紧密地团结在以习近平同志为核心的
冬天的仪式感是围炉给的深情bgm氛围感拉满视频加载中继露营绿道骑行龙泉山看日出这三个在春夏爆火的铁人三项运动后冬天到了成都人又爱上了围炉!三五好友围坐一起点燃炉火,喝茶,聊天再配上爆火的bgm我希望五十年以后你还能在我左右
小杜谁的人生,不是一场无尽的漂流?留美作家小杜,把他半生的漂流和漂流中所见所闻浓缩在人间漂流的18篇文章中。每篇文章都是他人生的一个片段,这些片段里不但有他,还有同时代人。18个片段,像是18个镜子,照进时代深处。
历史罕见!超级板块突然引爆,近2万字重磅解读来了!信息量很大中国基金报记者方丽陆慧婧11月21日,中国证监会主席易会满在2022金融街论坛年会上提出,探索建立具有中国特色的估值体系,促进市场资源配置功能更好发挥。这一重磅发言让中国特色估值体
促进民营经济发展壮大金融业如何保驾护航?随着中国经济结构转型的不断推进,高质量发展成为了新时代中国经济的鲜明特色,民营经济也向更加注重量质并重的高质量发展稳步转型。但近年来,面对日益复杂的内外部环境,民营经济面临着显著的
山西大学光电研究所所长张靖培养更多创新人才关于深入实施科教兴国战略,您有怎样的理解?什么是国家战略科技力量?党的二十大代表,山西大学光电研究所所长量子光学与光量子器件国家重点实验室主任张靖一回到学校,便第一时间走到师生中间
国际经济合作和竞争新优势不断增强原标题我国成为140多个国家和地区的主要贸易伙伴(引题)国际经济合作和竞争新优势不断增强(主题)人民日报记者罗珊珊习近平总书记在党的二十大报告中指出推进高水平对外开放。依托我国超大
社论完善数字经济领域法规体系建设需要靶向明确中华人民共和国反不正当竞争法(修订草案征求意见稿)(下称征求意见稿)正在向社会征求意见。这次反不正当竞争法修订的一项重要内容是完善数字经济领域反不正当竞争的法规体系建设,规范治理新
新思想引领新征程装备制造不断突破筑牢实体经济根基央视网消息(新闻联播)党的二十大报告提出,以国家战略需求为导向,集聚力量进行原创性引领性科技攻关,坚决打赢关键核心技术攻坚战。我国持续深入实施创新驱动发展战略,建设制造强国进度不断
京口经济开发区链上党建赋能产业发展近日,京口经济开发区与江苏大学材料科学与工程学院签订了产业链党建共建协议书,6位和产业发展有关的专家教授被聘为红链顾问。这是京口经济开发区积极探索链上党建,赋能产业发展的又一次生动