如何从 Spring Boot 更新 mongoDb 中的单个 JSON 字段
Posted
技术标签:
【中文标题】如何从 Spring Boot 更新 mongoDb 中的单个 JSON 字段【英文标题】:How to update individual JSON field in mongoDb from Springboot 【发布时间】:2020-07-17 04:24:30 【问题描述】:我正在尝试从 Springboot
更新 MongoDb 中存储的 JSON 的单个字段的值。我没有使用POJO
,因为JSON
架构总是随机的。
// this is what I'm trying to achieve. But I don't know how to do it from SpringBoot.
db.collection.update( _id:12345 , $set: a.b.c.d : updatedValue
这就是我将JSON
对象保存到MongoDB
的方式:
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("dbOne");
DBCollection collection = db.getCollection("data");
// convert JSON to DBObject directly
DBObject dbObject = (DBObject) JSON.parse(jsonString);
collection.insert(dbObject);
我的JSON
样本数据:
"a":
"b":
"c":
"d":"value1",
"e":"value2"
【问题讨论】:
【参考方案1】:是的,您可以通过 mongoOperations 和更新 API 来实现。 这将允许您更新 mongodb 集合中的各个字段- 例如:
Query query = new Query(new Criteria("id").is(12345L));
Update updateOp = new Update().set("a.b.c.d", value);
mongoOperations.updateFirst(query, updateOp, COLLECTION);
【讨论】:
很高兴它帮助了你。以上是关于如何从 Spring Boot 更新 mongoDb 中的单个 JSON 字段的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 Spring Boot 上的 org.testcontainers.containers.ContainerFetchException?
如何自动更新页面上的数据,Angular 7 和 Spring Boot
Spring boot 2.1.3 从 2.0.6 更新导致 util:map 的 BeanDefinitionParsingException
如何在 Spring Boot Restful 中更改大量数据(更新多个数据)
如何使用 Spring boot keycloak 适配器 + spring security 强制更新 oAuth 令牌(访问令牌 + 刷新令牌)。?