范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

MongoDB使用Bulk批量更新操作

  概述
  MongoDB支持执行批量更新和插入操作,允许在一次操作中插入或检索多个文档。通过使用Batch接口,减少客户端和数据库之间的调用次数,可以显著提高数据库访问性能。
  本文将演示如何使用MongoDB Shell和Java代码两种方式实现文档的批量更新。数据库初始化
  首先,我们需要连接到mongo shell:mongo --host localhost --port 27017
  建立一个数据库testDb和一个populations集合:use testDb; db.createCollection(populations);
  使用insertMany方法将一些样本数据添加到集合中:db.populations.insertMany([ {     "cityId":1124,     "cityName":"New York",     "countryName":"United States",     "continentName":"North America",     "population":22 }, {     "cityId":1125,     "cityName":"Mexico City",     "countryName":"Mexico",     "continentName":"North America",     "population":25 }, {     "cityId":1126,     "cityName":"New Delhi",     "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")     ] }使用MongoDB Shell查询
  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": "New Delhi"                      },                  "update" :                       {                           $set :                           {                               "status" : "High Population"                          }                       }             }     },     {          updateMany :             {                  "filter" :                       {                           "cityName": "London"                      },                  "update" :                       {                           $set :                           {                               "status" : "Low Population"                          }                       }             }     },     {          deleteOne :             {                  "filter" :                      {                          "cityName":"Mexico City"                     }              }     },     {          replaceOne :             {                 "filter" :                      {                          "cityName":"New York"                     },                  "replacement" :                      {                         "cityId":1124,                         "cityName":"New York",                         "countryName":"United States",                         "continentName":"North America",                         "population":28                     }              }     } ]);
  上述bulkWrite查询将返回以下文档:{     "acknowledged" : true,     "deletedCount" : 1,     "insertedCount" : 2,     "matchedCount" : 3,     "upsertedCount" : 0,     "insertedIds" :          {             "0" : ObjectId("623575f89d55d4e137e477f9"),             "1" : ObjectId("623575f89d55d4e137e477fa")         },     "upsertedIds" : {} }使用Java进行批量操作
  首先创建一个MongoClient连接:MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase database = mongoClient.getDatabase("testDb"); MongoCollection collection = database.getCollection("populations");
  使用Java代码实现相同的批量操作:List> writeOperations = new ArrayList>(); writeOperations.add(new InsertOneModel(new Document("cityId", 1128)   .append("cityName", "Kathmandu")   .append("countryName", "Nepal")   .append("continentName", "Asia")   .append("population", 12))); writeOperations.add(new InsertOneModel(new Document("cityId", 1130)   .append("cityName", "Mumbai")   .append("countryName", "India")   .append("continentName", "Asia")   .append("population", 55))); writeOperations.add(new UpdateOneModel(new Document("cityName", "New Delhi"),   new Document("$set", new Document("status", "High Population")) )); writeOperations.add(new UpdateManyModel(new Document("cityName", "London"),   new Document("$set", new Document("status", "Low Population")) )); writeOperations.add(new DeleteOneModel(new Document("cityName", "Mexico City"))); writeOperations.add(new ReplaceOneModel(new Document("cityId", 1124),    new Document("cityName", "New York").append("cityName", "United States")     .append("continentName", "North America")     .append("population", 28))); BulkWriteResult bulkWriteResult = collection.bulkWrite(writeOperations); System.out.println("bulkWriteResult:- " + bulkWriteResult);
  首先创建了一个writeModel列表,将所有不同类型的写操作添加到一个更新列表中。此外,我们在查询中使用了InsertOneModel、UpdateOneModel、UpdateManyModel、DeleteOneModel和ReplaceOneModel。最后,bulkWrite方法一次执行了所有的操作。结论
  MongoDB的Bulk批量操作详细资料可以参考:https://www.mongodb.com/docs/manual/core/bulk-write-operations/

如何提高个人的城府每一个职场小白,都有直面人生的时候,大多快言快语,无所掩饰,将自己的所思所想全部坦诚的暴露出去,大多撞的头破血流,有的被一棍子打死,有的反而思而后生,下面和大家谈谈锻炼自己提高城府落枕别硬拉!揉揉手上的几个穴位,效果特别好!收藏备用睡觉之前还是好好的,一觉醒来,脖子莫名其妙地不敢动了。没错,可能是落枕了。落枕,中医亦称其为失枕,现代医学称之为急性颈椎关节周围炎或颈肩肌筋膜炎,是颈部软组织常见的损伤之一。落枕起王者荣耀国服鲁班最新出装,两把无尽加末世,实战效果超棒文丹青解说原创文章盗载必究有的时候,当我们常玩一个英雄的时候,总是会被传统的观念所束缚,例如英雄的出装搭配,没有特殊情况一般不会轻易更改,自然而然地遵循一些老旧的思路。其实,英雄的传奇世界护盾也该提上日程,激战天元秘境大家好,我是知识嗷嗷丰富,嗓音贼拉炫酷,光一个背影往那一杵,就能吸引粉丝无数的小顾。最近装备提升的进度也不是那么着急了,但是其他项目还有有很大提升空间的。就比如说我们这个元神,目前十条励志语录,送给2022年的你(1)十条励志语录,送给2022年的你(1)世界是纷繁复杂的舞台,所以每一个人的生活,有时是一路风雨,艰难行进有时是一帆风顺,策马奔腾有时是冰天雪地,步履维艰有时是春暖花开沐浴暖阳。不论北方人去江西旅游2天后,才终于明白江西菜辣得有多深?去江西旅游2天,蔬菜里都放辣椒,北方人我是被辣回来的都说江西人能吃辣,河南小伙张峰自然是不信的,张峰以前在福建上班时,有个同事也是江西的,吃张峰做的油泼辣子结果被辣得哇哇叫。这让张魔法觉醒手游问题哈利波特运营问题讨论在朋友邀请下又玩了一周(因为可以借衣服)。现在打到了首席。然后禁林基本上全打到了星级10,传说卡有飞蛾罗恩哈利和那个变形课教授麦格,厉火和一个白龙。金回响基本上有几个了。再次卸载。王者大冒险官方版王者大冒险官方版是由海南舜杰网络科技有限公司打造的一款架空幻想冒险题材放置类型游戏,它以异世界的英雄峡谷作为背景,为了维护英雄峡谷的和平,玩家要从遗迹泉水之中召唤出各类英雄,从星之热血传奇沙巴克攻城战的背后故事?说起沙巴克攻城战,无人不知,但说起沙巴克的背后故事,知道的人就寥寥无几了。它如何诞生?拥有怎样的过去?史籍记载,沙巴克发现于玛法人最黑暗的时刻。在黑暗势力的影响下,大部分生灵变为嗜镜KPL限定皮肤最新爆料!上线时间已确定!47块你会买吗?皮肤爆料恭喜镜姐喜提KPL史上第一英雄称号不仅有FMVP皮肤还有KPL限定排面杠杠滴有!一起看看吧匿光追影者故事设定这个故事我很喜欢。它告诉我们,即使被创造者规定了人生,历经残酷,威客电竞LOL德杯小组赛阶段结束,最终晋级结果出炉随着英雄联盟冬季转会期的结束,一年一度的德杯开始了,今年德杯赛制和去年一样,S11世界赛的四支LPL队伍直接晋级八强,通过小组赛再选出剩下四支战队。目前德杯小组赛阶段已经结束,最终
知县和县令一字之差,有何区别?待遇一个天上,一个地下在古代,普通小老百姓接触官员的几率是很低的,当地的官员都甚少能看见,更别说级别更高的达官贵人了。现在有点不一样,由于媒体的发展,我们就算在现实生活中接触不到官员,在各种新闻报道影视马维先关于苏联解体的六大问题摘要苏联解体近30年,但导致苏联解体的一些重大问题至今仍迷雾重重。本文根据当事人回忆录和报刊档案资料披露的新的事实和证据,对戈尔巴乔夫上台是否受到西方支持美苏首脑两次会晤与苏联解体血祭登月路NASA采用残酷设计理念,三名宇航员被活活烧死我们先辈对于月亮的想象,充满了纯洁和向往,月宫洁白如玉温柔安详,玉兔捣药吴刚伐桂,还有仙女嫦娥舞蹁跹西方人对月亮的想象正相反,在他们眼里月亮就非常另类,比如那里住着长翅膀的月球人,我国最长的火车,320节车厢长度达到4千米,走一个小时也看不到头现在旅游已经变成了人们生活中非常常见的一种休闲生活方式,每当工作累了,厌倦了,很多人就会给自己来一场说走就走的旅行,尤其是随着我国的发展,经济越来越好,交通也更加的方便,出门不论是沙漠行军找水难百年大党,风华正茂!今年是中国共产党成立100周年!值此之际,解放军报微信熄灯号特别推出四史微讲堂栏目,讲述红色经典,弘扬先辈精神。四史知识问答1978年12月13日,邓小平发表(外星生命一定依赖水吗?为何科学家寻找外星生命时总是先寻找水?人类诞生以来,一直在仰望星空我们是孤独的吗?遥远的外太空有没有智慧生命存在?人类一直保持着好奇心,这种好奇心使得我们想尽办法去寻找外星生命。而在寻找外星生命的过程中,水(液态水)是全球拍天宫精彩追星图片欣赏10月16日,神舟十三号载人飞船成功发射,开启中国迄今时间最长的载人飞行。3名航天员将在中国天宫空间站核心舱在轨驻留6个月。一起来看看全球各地发来的精彩追星图片。11月22日,在北说出来你可能不信,我的学校上天了!12月7日中午12时12分新型气象观测小卫星天津大学一号卫星搭乘谷神星一号运载火箭在酒泉卫星发射中心发射升空卫星顺利进入预定轨道发射任务取得圆满成功这颗以天津大学命名的卫星由天津大任正非的坚持果然是对的!英特尔正式官宣,1400万花的值谷歌的GMS服务包含了搜索服务邮件服务软件市场服务等等,对于海外市场的安卓手机而言,谷歌的GMS服务非常重要。如果海外的安卓手机不能支持GMS服务,那么跟一块板砖没什么区别,因为用又涨价了!骁龙8Gen1机型4K以上才能买到,苹果或成最大受益者今晚摩托罗拉将召开新品发布会,正式推出motoedgeX30机型,该款新机将搭载高通骁龙8Gen1旗舰处理器,这将是你能最快买到的骁龙8Gen1机型。至于售价,虽然官方从未提及这方朝机今拾二iPhoneXsMax苹果历史上有两款系列的手机并没有采用数字进行命名,那就是iPhonex系列和之后的iPhonexs系列。放在现在,大众给库克打上最多的标签就是挤牙膏,诚然由命名方式不难猜到次年发布