gpt4 book ai didi

java - 如何使用JAVA检索存储在mongoDB中的JSON中的键(嵌套)的值?

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:42 24 4
gpt4 key购买 nike

下面是我要从中检索电话号码的 JSON 文件:

"_data" : {
"Variable key" : {

"Name" : "Hello World",
"Phone" : "Phone : 123-456-6789 ",
"Region" : "New York",
"Description" : ""
}
}

我的Java代码是:

            BasicDBObject query = new BasicDBObject();
BasicDBObject field = new BasicDBObject();
field.put("_data.Phone", 1);
DBCursor cursor = table.find(query,field);
String str;
while (cursor.hasNext()) {
BasicDBObject obj = (BasicDBObject) cursor.next();
str=cursor.curr().get("_data.Phone").toString();
System.out.println(str);
}

它将返回 null,因为我没有考虑变量键。

我的问题是 mongo 数据库中存在许多 JSON 文件,每个文件都有不同的“变量键”,并且该键可能会在一段时间后发生变化。由于该 key 可能会随着时间的推移而改变,我如何检索电话号码?

谢谢!!

最佳答案

您想要哪个电话号码?您的查询将返回所有文档,并且您尝试仅投影电话号码,但投影规范不正确。如果您想要所有电话号码,只需完全省略投影规范或投影到 { "_data": 1 } 上。如果您想要与特定变量键关联的电话号码,请使用点表示法将其投影出来,例如 { "_data.key_name.Phone": 1 }。如果你不知道你想要投影的键的名称,那么这就是你需要解决的根本问题,然后你要求 MongoDB 返回你不知道你想要的东西(或者你不知道的东西)不想)。

关于java - 如何使用JAVA检索存储在mongoDB中的JSON中的键(嵌套)的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237062/

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