mongoTemplate通过upsert实现数据存在就更新,不存在就插入数据

SpringBoot MongoTemplate使用详解 阅读详情
// 查询条件,如果数据存在更新
Query query = new Query();
query.addCriteria(Criteria.where("statisticsDatetime").is(e.getStatisticsDatetime()));
query.addCriteria(Criteria.where("storeId").is(e.getStoreId()));

// 更新的字段
Update update = new Update();
update.set("expenseStatisticsList", e.getExpenseStatisticsList());
update.set("parentStoreId", e.getParentStoreId());
update.set("storeType", e.getStoreType());
mongoTemplate.upsert(query, update, ContractItemExpenseStatistics.class, MongodbTableEnum.expense_statistics.getValue());

 

MongoDB批量upsert/save package com.ott.demo.dao.mongo.batch; import com.alibaba.fastjson.JSON; import com.gooagoo.log.GooagooLog; import com.mongodb.BasicDBObject; import com.mongodb.CommandResult; import com.mongodb.DBCollection; import com.mongodb.DBObject; import org.springf 阅读详情

相关推荐

SAP产品合规(Product Compliance)管理—规格主数据 CG02/CG02WB

SAP产品合规(Product Compliance)管理—规格主数据概览 CG02/CG02WB

Lucas1211的博客 1430

mongodb/mongoTemplate.upsert批量插入更新数据的实现

mongodb/mongoTemplate.upsert批量插入更新数据的实现

hahaha_1112的博客 1万+

STM32 HAL库状态机实现按键多事件检测(无阻塞高效处理)

本文详细介绍基于STM32 HAL库的状态机实现按键多事件检测方法,包括单击、双击等高效无阻塞处理。通过定时器中断和GPIO中断优化,结合状态机设计,显著提升系统响应效率和实时性,适用于嵌入式系统开发。

tech5的博客 1016

MongoTemplate用法

1.首先pom.xml <!-- springboot 整合 mongodb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>2.0.0.RELEASE&l...

奋斗的新丁 3011

告别信息过载:我是如何用Feedly RSS阅读器打造个人专属信息流的(附Chrome插件使用技巧)

本文分享了如何利用Feedly RSS阅读器有效管理信息过载,打造个人专属信息流的方法。通过科学组织订阅源、智能过滤和跨平台同步技巧,帮助用户从被动接收转为主动筛选,提升信息获取效率。特别推荐使用Feedly的Chrome插件和AI过滤功能,实现高效的信息管理。

weixin_42526015的博客 355

科普:Frenet坐标

理想情况下,描述这种常见驾驶行为在数学上应该很容易。一种方法是使用新的坐标系。现在,而不是放下一个正常的笛卡尔网格,我们做一些事情,就像你看到下面…Frenet Coordinates是一种以比传统x,y笛卡尔坐标更直观的方式表示道路位置的方式。如果我们想要方程式来描述这个动作,那就不容易了!想象一下像下面这样一条弯曲的道路,笛卡尔坐标系就位于它的上面…使用这些笛卡尔坐标,我们可以尝试描述车辆通常在路上行驶的路径…那么在Frenet坐标系下呈现的典型轨迹是什么样的?在这里,我们定义了一个新的坐标系统。

OceanStar的博客 1万+

springboot整合mongodb复杂查询和分页查询

添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 配置文件 ...

shawn的博客 4054

2024高校网络安全管理运维赛题目--复现+题目+wp

官方writeup集思广益比较好的备份。

书山有路勤为径,学海无涯苦作舟 1323

基于MongoTemplate对数据库进行增删查改操作的入门基础

MongoTemplate对MongoDB数据库进行增删查改操作的入门基础        本文是基于使用Spring data MongoDB中的Mongotemplate来进行操作的,因为Mongotemplate集成了许多内置的方法来操作mongoDB数据库,使用起来比较简单易懂,值得大家来学习一下。  &nbsp...

xuguoxing123的博客 4000

MT25QL256完整操作指南:从ID读取到4KB扇区擦除(附华大SPI例程)

本文提供了MT25QL256 NOR FLASH在华大MCU上的完整驱动开发指南。内容涵盖从SPI初始化、器件ID读取、状态寄存器查询,到核心的页编程和4KB扇区擦除操作,并分享了构建健壮驱动框架、处理跨页写入及常见调试问题的实战经验。

tt34567的博客 886

弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制

基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制1. 前言2. 顶帽变换(Top_hat)算法3. Matlab仿真4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵“弱"和“小’’两个方面:“弱’’是指目标在红外波长上所表现出来的强度,具体反映到所拍摄的红外图像上,就是指目标的灰度值;而“小’’是指目标的尺寸大小,也就是前面所述的成像面积很小,反映到红外图像上就是指目标所占的像素数目很少。 SPIE国际光学工程学会(Societyof Photo一0ptical Instrument

sinat_34897952的博客 5293

mongoTemplate 常见操作

插入数据 将参数转换成一个对象,直接调用insert方法即可:举例: @Document(collection="student") public class Student { private String studentId; private String name; private int age; private String sex; public String getStudentId() { return stu...

longlongbug的博客 2万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MongoDB单条数据插入更新及批量数据插入更新

单条数据插入更新 public void insertStubStatusRealTime(Map<String, Object> params) throws ParseException { String stubStatusTableName = "t_stub_status_realtime"; String stubId = (String) ...

kuaimeidong的博客 1100

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MongoTemplate —保存、更新和删除文档

如果你想避免把整个Java类的名字写成类型信息,而是想使用一个key,你可以在实体类上使用 @TypeAlias 注解。如果你需要进一步定制映射,可以看看 TypeInformationMapper 接口。该接口的实例可以在 DefaultMongoTypeMapper 上配置,反过来,可以在 MappingMongoConverter 上配置。Example 60. 为一个实体定义一个类型别名请注意,所产生的文档中包含 pers 作为 _class 字段的值。

深圳市多克创新科技有限公司 3524

springboot mongodb 批量(bulkOps)插入或更新(upsert)数据

参与的项目中有一个业务场景,有两个消费者从kafka中拉取数据消费: 1、订单消费者:从订单队列中拉取订单数据,插入到mongodb,集合名称为order(主要包含id、orderNo、orderName、status) 2、订单状态消费者:从订单状态队列中拉取数据,更新order集合中的状态字段(status) 存在问题: 1、订单状态消费者消费依赖于订单消费者,如果订单消费者消费速度慢了,订单还没有插入到mongodb中,订单状态根据订单号orderNo去更新数据,则会找不到订单数据...

conquer的博客 1万+

Mysql - Upsert功能实现

在看到了mongoTemplate的操作之后,觉得这种东西是很符合我们程序员世界的操作的,但是看到mysql的jdbc之后,瞬间一百万个小泥马从头飘过,所以就想自己实现一个mysql版本的upsert功能,有set与increase,decrease。 实现操作 参考mongoTemplate,创建一个update.java与query.java类,方便两款db之间转换 import java.util.HashMap; import java.util.Map; public...

u011250186的博客 929

Spring MongoTemplate upsert

Spring MongoTemplate upsert 插入未报异常,但是数据库中没有查询到相关记录。 如下,一般为update.set()方法,没有把除了Criteria中的字段都update。     package com.oasis.model; import com.google.gson.Gson; import org.apache.commons.lang.Str...

Y292450104的博客 1471

mongo——各种数据原子插入方式

    与mysql的insert不同,mongo在数据插入方面有多种方式,这里进行统一的总结一下: insert     和mysql一样,mongo也支持insert这种直接插入,当插入出现唯一键冲突时则会失败,抛出异常: db.test.insert({ "name":"1223" }) save     save是基于主键的文档替换,如果主键存在则其他字段完全替换成新的字段,如果老的字段,新的文档中不存在,则删除了,如果主键原本不存在,这插入一条新的文档。可能会觉得这种方式挺好的,不会出现

qq_30095631的博客 873

mongo的upsert(spring的mongo template)

mongo的api在某些方面表现的异常优秀,这几天体会了一下mongo的upsert方法。 我的目的是想在某个项号下记录每天的评论,并且能够查到某段日期间按时间倒叙排列的评论。我的设计是这样: 1 类设计 首先是记录每天的评论汇总 [html] view plain copy @Document(collection="comments")  public cl

rj597306518的博客 5482

MongoDB学习02:使用MongoTemplate操作MongoDB

文章目录MongoDB学习02:使用MongoTemplate操作MongoDB`MongoTemplate`的使用示例`MongoTemplate`的使用向Spring容器注入`MongoTemplate`字段和类型映射`_id`字段映射类型映射 MongoDB学习02:使用MongoTemplate操作MongoDB SpringData的官方文档Spring Data MongoDB - R...

ncepu_Chen的博客 3877

Spring整合MongoDB----Template API之保存、更新和删除Documents

MongoTemplate / ReactiveMongoTemplatge允许你保存、更新和删除域对象,并将这些对象映射到存储在MongoDB中的documents。命令式和反应式(reactive)API的API签名大部分相同,只是返回类型不同。当同步API使用void、single Object和List时,反应式(reactive)对应地由Mono< Void>, Mono< Object> and Flux组成。

爱看技术博客 1519

MongoDB upsert操作并发的原子性

在用C++对MongoDB执行update操作的时候,如果设置了upsert参数为true,则会自动插入不存在的数据。在高并发环境下,会导致数据重复。解决方法是为查询条件添加unique index, 参考官方文档:http://docs.mongodb.org/manual/core/write-operations-atomicity/http://docs.mongodb.org/manua

Dean Chen的专栏 1万+

关于mongoDB插入去重以及高并发问题

关于mongoDB插入去重以及高并发问题 最近在项目中碰到过向mongoDB插入数据去重问题。一开始我的想法直接用upsert,我的项目部分代码如下: //使用Upsert进行插入,如果存在就更新,不存在则插入 //根据报告时间和code进行筛选去重 Query query = new Query(); query.addCriteria(Criteria.where("reporttimeStamp").is(meteorologicalDa

xian_hui的博客 4114

MongoDB更新文档保存文档

update() 方法用于更新已存在的文档。语法格式如下: db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } ) query : update的查询条件,类似sql update查询内where后面的。 update : up

琳琳的博客 478
上一篇: 动态修改java日志等级
下一篇: Idea设置java类方法注释模板
hwmhehe
博客等级 码龄13年 86粉丝 106原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值