java - MongoDB Java驱动程序读取结果时无限循环

标签 java mongodb mongodb-java

我正在使用以下代码读取 MongoDB 结果,但是 while 循环在无限循环中运行,始终迭代集合中的第一个元素,有人可以指出我做错了什么。

       Iterable<DBObject> list = playerData.results();
        if(list != null){
            while(list.iterator().hasNext()) {

                DBObject obj = list.iterator().next();
                DBObject id =  (DBObject) obj.get("_id");
                String player= obj.get("player").toString();
                //Populate the memcached here .
                PlayerDTO rcd = new PlayerDTO();

                if(id != null && id.get("venue" != null && id.get("score") != null) {

                    rcd.setVenue(id.get("venue").toString());
                    rcd.setScore(new Double(id.get("score").toString()).doubleValue());
                }

            }
        }

最佳答案

您正在将原始迭代器重新分配给每次迭代的 while() 循环。

Iterator i = list.iterator();
while(i.hasNext()) {
  ....
}

关于java - MongoDB Java驱动程序读取结果时无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622913/

相关文章:

java - 如何运行 jar 文件分配给变量并在 shell 脚本中回显它

java - 原始数据吞吐量上的非阻塞 io 与阻塞 io

java - 带有 $in 和 upsert 的 MongoDB UpdateMany

java - 如何通过Java驱动在MongoDB中创建复合索引?

java - 通过终止 ExecutorService 可以完成 future 的问题

java - 将gzencoded数据传递给mcrypt_encrypt,解密后无法解压

mongodb - Haskell MongoDB 驱动程序可能出现死锁

mongodb - Mongo Db 使用 C# api 记录检索非常慢

java - Spring boot/Application.java 如何获取另一个包中的 Mongo AbstractMongoConfiguration ?

java - 如何在 MongoDB Java 驱动程序 3 中插入​​文档