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

相关推荐
葫芦和十三1 天前
图解 MongoDB 17|大集合与工作集:数据超过内存怎么办
后端·mongodb·面试
葫芦和十三2 天前
图解 MongoDB 18|复制集拓扑:Primary、Secondary 和 Arbiter 的分工
后端·mongodb·面试
葫芦和十三2 天前
图解 MongoDB 15|journal 与持久化:写入怎么不丢,崩溃怎么恢复
后端·mongodb·面试
葫芦和十三2 天前
图解 MongoDB 16|压缩:snappy、zstd 和 zlib 的取舍
后端·mongodb·面试
带刺的坐椅2 天前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·springboot·web·solon
葫芦和十三3 天前
图解 MongoDB 13|WiredTiger 存储引擎:B-tree、页和 checkpoint 三件套
后端·mongodb·agent
葫芦和十三3 天前
图解 MongoDB 14|Cache 与淘汰:WiredTiger 的内存治理
后端·mongodb·面试
葫芦和十三4 天前
图解 MongoDB 12|索引与查询优化地图:一条主线,三个判断轴
后端·mongodb·agent
葫芦和十三5 天前
图解 MongoDB 11|慢查询排查闭环:从 Profile 到 explain 的分层路径
后端·mongodb·agent
葫芦和十三5 天前
图解 MongoDB 09|explain 再读:从 queryPlanner 到 executionStats
后端·mongodb·agent