2012-03-11 20 views
10

Tengo el siguiente código:recuperar los valores de la matriz de mongodb con Java

DBCollection collsc = db.getCollection("StudentCourses") ; 
BasicDBObject querysc = new BasicDBObject("StudentID",id); 
DBCursor curssc = collsc.find(querysc); 

while(curssc.hasNext()) { 

    DBObject e = curssc.next(); 
    System.out.println("You are currently registered for the following modules: ") ; 
    System.out.println(e.get("CoursesRegistered")) ; 

} 

Este salidas:

You are currently registered for the following modules: 
[ "DigitalLogic" "OperatingSystems" , "FundamentalsCSE"] 

Sin embargo, quiero sólo los valores a ser devueltos de la matriz, es decir, DigitalLogic, OperatingSystems y FundamentalsCSE. Usaré estos valores para poblar una JList. ¿Ayuda por favor?

Respuesta

17

intenta utilizar

BasicDBList e = (BasicDBList) curssc.next().get("CoursesRegistered"); 

en lugar de

DBObject e = curssc.next(); 

y luego obtener el valor de e.getIndex (índice);

+0

No funciona. Llego a excepción de la siguiente manera: Excepción en hilo java.lang.ClassCastException "principal": com.mongodb.BasicDBObject no se puede convertir a com.mongodb.BasicDBList \t en modules.RegistrationSystem.main (RegistrationSystem.java:80) Lo sentimos –

+0

he editado mi respuesta –

+0

Todavía hay excepciones. Excepción en hilo java.lang.IllegalArgumentException "principal": BasicBSONList sólo puede funcionar con las teclas numéricas, no: [CoursesRegistered] \t en org.bson.types.BasicBSONList._getInt (BasicBSONList.java:161) \t en org. bson.types.BasicBSONList._getInt (BasicBSONList.java:152) \t en org.bson.types.BasicBSONList.get (BasicBSONList.java:104) \t en modules.RegistrationSystem.main (RegistrationSystem.java:82) –

Cuestiones relacionadas