gpt4 book ai didi

java - 使用 Java 更新 Mongodb

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:47 25 4
gpt4 key购买 nike

我需要更新 MONGO DB 的帮助。这是我的文档:

Functions : {
"cgi0-app" : {
"calculatedConfigValues" : {
"floor" : 0.0 ,
"ceiling" : 49.0 ,
"calculatedBrokenValue" : 2.033 },
"userConfigValues" : null },
"shop-app" : {
"calculatedConfigValues" : {
"floor" : 0.0 ,
"ceiling" : 70.0 ,
"calculatedBrokenValue" : 2.413 } } }

我正在尝试将 MongoDB 中的 shop-app 的“ceiling”值从 70 更新为 100,但没有成功。这是我的代码:

BasicDBObject find = new BasicDBObject("Functions.shop app.calculatedConfigValues.floor",0);

BasicDBObject set = new BasicDBObject("$set", new BasicDBObject("Functions.shop- app.calculatedConfigValues.$.ceiling", 100);

getDB().update(find, set);

有人可以帮我解决我做错的事情吗?

最佳答案

您无法真正使用该点表示法创建 DBObject。您必须为文档树中的每个级别嵌套新的 BasicDBObjects。

DBObject toFind = new BasicDBObject("Functions", 
new BasicDBObject("show-app",
new BasicDBObject("calculatedConfigValues",
new BasicDBObject("floor", 0))));

更新对象也是如此

DBObject update = new BasicDBObject("$set",
new BasicDBObject("Functions",
new BasicDBObject("show-app",
new BasicDBObject("calculatedConfigValues",
new BasicDBObject("ceiling", 100)))))

或者,您可以使用this用于将 json 字符串转换为 DBObject 结构的帮助器类,如下所示。

DBObject toFind = (DBObject) JSON.parse(
"{'Functions.show-app.calculatedConfigValues.floor':0}"
);

但请注意,使用 JSON 类可能会导致性能问题。手动构建 DBObject 速度更快。

关于java - 使用 Java 更新 Mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com