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

标签 java mongodb mongodb-java nosql

如何从 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/

相关文章:

java - 如何四舍五入经度和纬度值

java - spring hibernate实现一对一关系

java - SecurityManager 是一个完整的安全解决方案吗?

java - 命名 POJO 变量 "public"

java - MongoDB 和管理 UI

java - Android 界面线程

mongodb - 将 mongodb docker 容器连接到本地主机

mongodb - mongodb map 集中的群集和副本集之间有什么区别?

java - 如何加快聚合查询?

Mongodb VS Redis - 性能基准 - 哪个数据库应该用于缓存?