2012-03-11 15 views
10

Ho il codice seguente:recuperare i valori di matrice da 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")) ; 

} 

This uscite:

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

Tuttavia voglio solo i valori da restituire dalla matrice, cioè, DigitalLogic, OperatingSystems and FundamentalsCSE. Userò questi valori per popolare una JList. Aiuto per favore?

risposta

17

tenta di utilizzare

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

invece di

DBObject e = curssc.next(); 

e quindi ottenere valore da e.getIndex (indice);

+0

Non funziona. Ottengo eccezione come segue: Exception in thread "main" java.lang.ClassCastException: com.mongodb.BasicDBObject non può essere lanciato a com.mongodb.BasicDBList \t a modules.RegistrationSystem.main (RegistrationSystem.java:80) –

+0

Spiacente ho modificato la mia risposta –

+0

Ancora eccezioni. eccezione in filetto java.lang.IllegalArgumentException "main": BasicBSONList può funzionare solo con i tasti numerici, non: [CoursesRegistered] \t a org.bson.types.BasicBSONList._getInt (BasicBSONList.java:161) \t a org. bson.types.BasicBSONList._getInt (BasicBSONList.java:152) \t a org.bson.types.BasicBSONList.get (BasicBSONList.java:104) \t a modules.RegistrationSystem.main (RegistrationSystem.java:82) –

Problemi correlati