gpt4 book ai didi

java - 从 mongodb 内部文档中的数组获取值

转载 作者:行者123 更新时间:2023-12-01 13:17:07 24 4
gpt4 key购买 nike

如何从 mongodb 的内部文档中获取字段?例如,如果我给出一个名为“idMovie”的字段,我将获得与此 idMovie 相对应的其余字段。

我正在使用此代码:

        MongoClient mongo = null;
DBCursor cursor = null;
String average = "";
String sum = "";
String numCal = "";

try {
mongo = new MongoClient ("localhost", 27017);
DB db = mongo.getDB("DBHC2");

DBCollection movieDocument = db.getCollection("movies");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("rateMovies.idMovie", idMovie);
cursor = movieDocument.find(searchQuery);

if(cursor.hasNext()){

average = searchQuery.getString("average");
sum = searchQuery.getString("sum");
numCal = searchQuery.getString("total");

System.out.println("***** Debug: average: "+average+" sum: "+sum+" total: "+numCal);
}
}
catch(Exception e){
System.out.println("error : " + e.getMessage());
System.out.println("error : " + e.getCause());
}
finally{
cursor.close();
}
}

当我运行它时,控制台打印:

***** Debug: average: null sum: null total: null

这是我正在使用的 mongodb 文档:

{ "_id" : { "$oid" : "5320aa3c3e468eaeb52dccdc"}, 
"document" : "movies" ,
"rateMovies" : [
{
"idMovie" : 2 ,
"average" : "0" ,
"sum" : "0" ,
"total" : "0"
} ,

{
"idMovie" : 3 ,
"average" : "0" ,
"sum" : "0" ,
"total" : "0"
}]
}

先谢谢你了!! :) 对不起我的英语。

最佳答案

您正在尝试从传入的查询对象中提取数据,而不是通过游标返回的 DBObjects。

关于java - 从 mongodb 内部文档中的数组获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22383439/

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