json - 如何从 Springboot 更新 mongoDb 中的单个 JSON 字段
问题描述
我正在尝试更新 MongoDb 中存储的 JSON 的单个字段的值Springboot
。我没有使用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 和 Update 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);
推荐阅读
- android - 应用程序运行时不起作用 - 权限错误
- java - 无法获得输出“用户名已被使用!” 当我输入已存储在数据库中的用户名时
- c++ - C++ 使用未声明的标识符
- javafx - 如何在按钮中创建复选框?(javafx)
- android - 如何解决在 android studio 中找不到应用程序的问题?
- javascript - 选项卡内容与其他选项卡内容重叠
- php - 如果用户 ID 在 foreach 循环 laravel 中相同,则合并表行
- .net - 关于我的 SSO 实施的一些指导 = 设置身份服务器并以编程方式使用它
- java - 是否可以将 Jfree 图表与矩阵一起使用?
- c# - 如何使用信号器将 json 对象发送到 .net 服务器