MongoDB批量更新不同查询条件的数据

今天遇到这样一个场景:在Java中批量更新MongoDB数据,不过每次更新的条件有不一样,那如何有效地进行更新操作呢?

刚开始的时候,我是想到循环批量更新操作,即每一种查询条件进行一次批量更新过程,这样的思路就是多个查询条件就需要进行多次的批量更新,带来的弊端是跟数据库的连接交互太频繁了,消耗的时间都浪费在这些过程中了;那么今天我们可以通过一种新的思路来避免这种负面影响,即只需要两次连接交互就可以了。

------20200113勉

原文地址:https://www.cnblogs.com/bien94/p/12189890.html

时间: 2024-08-05 11:22:47

MongoDB批量更新不同查询条件的数据的相关文章

Oracle两张表关联批量更新其中一张表的数据

Oracle两张表关联批量更新其中一张表的数据 方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围. 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED TH

exp导出一个表中符合查询条件的数据

原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50000这个条件中的数据exp charsi/[email protected] tables=(TEST) query="'where object_id>50000'" file=aaa.dmp log=aaa.log 其他参数含义:GRANTS:指定是否导出对象的授权信息,默认参

mongodb 批量更新 数组的键操作的文件

persons该文件的数据如下面的: > db.persons.find() { "_id" : 2, "name" : 2 } { "_id" : 3, "name" : 3 } > db.persons.update({_id:4},{_id:4,name:4}) WriteResult({ "nMatched" : 0, "nUpserted" : 0, "n

mongodb 批量更新 操作文档的数组键

persons文档的数据如下: > db.persons.find() { "_id" : 2, "name" : 2 } { "_id" : 3, "name" : 3 } > db.persons.update({_id:4},{_id:4,name:4}) WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nMod

mongodb批量更新操作文档的数组键

persons文档的数据如下: > db.persons.find(){ "_id" : 2, "name" : 2 }{ "_id" : 3, "name" : 3 } > db.persons.update({_id:4},{_id:4,name:4})WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModifi

MySQL批量更新不同表中的数据

今天翻到以前写的批量更新表中的数据的存储过程,故在此做一下记录. 当时MySQL中的表名具有如下特征,即根据需求将业务表类型分为了公有.私有和临时三种类型,即不同的业务对应三张表,而所做的是区分出是什么类型(公有.私有.临时)的业务表对数据的固定字段做统一规律的处理. 下面为当时所编写的存储过程: BEGIN DECLARE done INT; DECLARE v_table_name VARCHAR(100); DECLARE v_disable VARCHAR(100); DECLARE v

案例:利用sql批量更新部分时间的同比数据

问题:如何将social_kol_tmp表 中的字段cost_YA中日期为201901-201909中的值替换为相同brand和pltform对应18年月份的col_cost字段的数据,其他日期的cost_Y值不变? 假设:social_kol_tmp表 A,social_kol_tmp表B 难点:可以利用join on brand和pltform相等,但是日期如何匹配呢? 思路:通过对18年各月和对应19年的各个月份产生相应的字段,rn1和rn2 注意,理论上结果中同一行两个时间只相差一年 方

mysql 根据查询条件删除数据 mark一下

DELETEFROMdd_itemWHEREdd_item.id IN ( SELECT * from( SELECT a.id FROM dd_item a LEFT JOIN dd_item_cat b ON a.class_id = b.id WHERE b.parent_id=23 and (b.name in ('生蚝','带鱼','黄鳝')) ) as ee ) //mysql 根据查询子条件进行删除表的记录 原文地址:https://blog.51cto.com/13288309/

easyui 查询条件form 数据遍历

columns:[[     {field:'ck',checkbox:true,id:'ck'},      {field:'id',hidden:true,title:'id'},      {field:'action',title:'操作',align:'center',formatter:formatAction},           {field:'packetnum',title:'红包编码'},           {field:'isdisable',title:'启用状态'