我正在尝试从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);