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注解所确定的,或者将会使用该类的简单名称(首字母小写)作为集合名。

相关推荐
Wang's Blog8 小时前
MongoDB小课堂: 分片集群架构深度解析与生产级优化指南
数据库·mongodb·架构
泽济天下14 小时前
【经验分享】基于Spring Boot 4.0快速实现最简版的OAuth2 Server和Client
spring boot·springboot·oauth2
Wang's Blog1 天前
MongoDB小课堂: 深度诊断与优化——响应时间、内存压力及连接数故障全方位解决指南
数据库·mongodb
她说..1 天前
Java AOP完全指南:从原理到实战(全套知识点+场景总结)
java·开发语言·spring·java-ee·springboot
千寻技术帮2 天前
10414_基于SpringBoot的家乡农产品销售平台
源码·springboot·商城·文档·农产品
一 乐2 天前
数码商城系统|电子|基于SprinBoot+vue的数码商城系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·springboot
he___H2 天前
RabbitMQ使用
rabbitmq·springboot
0和1的舞者2 天前
《SpringBoot 入门通关指南:从 HelloWorld 到问题排查全掌握》
java·spring boot·后端·网络编程·springboot·开发·网站
范纹杉想快点毕业2 天前
《STM32深度100问:AI助教工程师的实战问答录》从入门到精通适用入门嵌入式软件初级工程师,筑牢基础,技术积累
arm开发·数据库·驱动开发·mongodb·fpga开发
WangHappy2 天前
Mongoose操作MongoDB数据库(1):项目创建与连接配置
前端·mongodb