Estoy usando mongodb para almacenar información de los usuarios. Quería crear un método que obtenga la información de la base de datos, crea objetos de jugador y los inserta en una matriz de jugadores.mongodb cursor exception - Java
Este es el método
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;
}
siguiente tengo 4 usuarios almacenados en el PP y cuando estoy tratando de llamar primero al método y luego imprimir los nombres, por ejemplo, que estoy recibiendo una excepción. Utilicé un try-catch fuera del método y cogí la excepción, pero luego imprimí el nombre del primer usuario solamente. Parece que arroja la excepción en la segunda iteración.
Aquí está el mensaje con la excepción que estoy recibiendo.
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)
¡Funcionó como un amuleto! ¡Gracias! –