From my Java application, I have stored the values in mongoDB in ArrayList(set of Java objects).
How can I retrieve the data from DBObject
I am storing the data in mongoDB like this:
{ "students" : [{"firstName" : "Jesse", "lastName" : "Varnell", "age" : "15", "gender" : "M" }, { "firstName" : "John", "lastName" : "Doe", "age" : "13", "gender" : "F"}] }
I am having the Java Object for the Student like:
public class Student {
public String firstName;
public String lastName;
public String age;
public String gender; // M, F
}
I am retrieving the data from mongoDB like:
BasicDBObject query = new BasicDBObject();
query.put("user", username);
DBCursor cursor = theCollection.find(query);
while (cursor.hasNext()) {
DBObject theObj = cursor.next();
//How to get the DBObject value to ArrayList of Java Object?
}
解决方案
You can do it as follows :
List students = new ArrayList();
BasicDBObject query = new BasicDBObject();
query.put("user", username);
DBCursor cursor = theCollection.find(query);
while (cursor.hasNext()) {
DBObject theObj = cursor.next();
//How to get the DBObject value to ArrayList of Java Object?
BasicDBList studentsList = (BasicDBList) theObj.get("students");
for (int i = 0; i < studentsList.size(); i++) {
BasicDBObject studentObj = (BasicDBObject) studentsList.get(i);
String firstName = studentObj.getString("firstName");
String lastName = studentObj.getString("lastName");
String age = studentObj.getString("age");
String gender = studentObj.getString("gender");
Student student = new Student();
student.setFirstName(firstName);
student.setLastName(lastName);
student.setAge(age);
student.setGender(gender);
students.add(student);
}
}