如何从 Spring Boot 更新 mongoDb 中的单个 JSON 字段
How to update individual JSON field in mongoDb from Springboot
我正在尝试从 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"
}
}
}
}
是的,您可以通过 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);
我正在尝试从 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"
}
}
}
}
是的,您可以通过 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);