7
我正在使用mongodb來存儲用戶信息。 我想創建一個方法,從數據庫獲取信息,創建播放器對象並將它們插入播放器數組中。mongodb遊標異常 - Java
這是下面的方法
public ArrayList<Player> getArrayOfPlayers(){
ArrayList<Player> savePlayers = new ArrayList<Player>();
DB db = connectToMongo();
DBCollection coll = db.getCollection("players");
DBCursor cursor = coll.find();
while(cursor.hasNext()) {
String tempName = (String)cursor.next().get("name");
String tempSession = (String)cursor.next().get("session");
String tempStringScore = (String)cursor.next().get("score");
int tempScore = Integer.parseInt(tempStringScore);
Player player = new Player(tempName,tempSession,tempScore);
savePlayers.add(player);
}
return savePlayers;
}
我有4個用戶存儲在數據庫中,當我試圖先調用該方法,然後打印我得到一個例外,例如名稱。 我在方法的外面使用了一個try-catch,而我發現了異常,但它只打印了第一個用戶的名字。它似乎在第二次迭代中引發異常。
以下是我正在接收的例外信息。
java.lang.RuntimeException: no more
com.mongodb.DBApiLayer$Result.next(DBApiLayer.java:394)
com.mongodb.DBApiLayer$Result.next(DBApiLayer.java:360)
com.mongodb.DBCursor._next(DBCursor.java:445)
com.mongodb.DBCursor.next(DBCursor.java:525)
machine.DAOMongodb.getArrayOfPlayers(DAOMongodb.java:74)
machine.testDB.doGet(testDB.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
像魅力一樣工作!謝謝! –