mongodbTemplate 修改JSON [key: ‘1‘, key2: [{id:1, name: ‘name‘}] 中 key2.name属性

问题描述

mongodbTemplate 修改JSON [key: '1', key2: [{id:1, name: 'name'}] 中 key2.name属性

代码

java 复制代码
Query query = Query.query(Criteria.where("key").is(1)                                    
                                 .and("key2.id").is(1)                                  
                                 .and("key2.name").is("name"));
Update update = new Update().set("key2.$.name", "new value");
mongoTemplate.updateFirst(query, update, Class_Name.class, collection_name);
补充

1.当更新的key2.$.name name属性不存在,会自动为该对象添加这个属性。

例如:

数组key2中id为1的对象存在,没有name属性,updateFirst方法将为这个对象添加一个name属性,并将其值设置为"new value"。

2.mongoTemplate.findOne 不指定collectionName

在Spring Data MongoDB中,collectionName通常是由被查询的实体类上的@Document注解所确定的,或者将会使用该类的简单名称(首字母小写)作为集合名。

相关推荐
2301_8187320610 小时前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
李钢蛋15 小时前
使用 SSH 隧道安全连接远程 MongoDB
安全·mongodb·ssh
Dragon Wu16 小时前
OpenAPI 3.0(Swagger3/Knife4j)完整简洁注解清单
spring boot·后端·springboot
Dragon Wu17 小时前
SpringBoot3 当前最新版knife4j openapi3 集成方案
spring boot·后端·springboot
·云扬·17 小时前
MongoDB高可用方案详解:副本集与分片集群
数据库·mongodb
云边有个稻草人1 天前
金仓 VS MongoDB:国产数据库凭什么成为MongoDB平替首选?
数据库·mongodb·国产数据库·金仓·kingbasees sql
long3161 天前
K‘ 未排序数组中的最小/最大元素 |期望线性时间
java·算法·排序算法·springboot·sorting algorithm
没有bug.的程序员2 天前
Spring Boot 与 XXL-JOB:分布式调度内核、任务分片与高可用报表实战指南
spring·springboot·xxl-job·分布式调度内核·任务分片·高可用报表
super_lzb2 天前
VUE 请求代理地址localhost报错[HPM] Error occurred while trying to proxy request
java·spring·vue·springboot·vue报错
fen_fen2 天前
Docker MongoDB 配置 0.0.0.0 监听(外部可访问)操作文档
mongodb·docker·eureka