我想创建一个java类的数据模型,以便我可以通过使用类中定义的方法自动获取从mongodb的dbcollection中检索到的数据模型的某些属性。
比方说,如果我有一个名为“学生”像存储MongoDB的集合中的数据结构:将mongodb查询结果转换为java中的数据模型类
{
"name":"Jone",
"id":"20140314201"
"courses":[
{
"CourseName":"math",
"teacher":"Prof Smith",
"Score":80
},
{
"CourseName":"literature",
"teacher":"Brown"
"Score":58
}
]
}
它总是方便地定义一个学生类是这样的:
class Student extends BasicDBObject{
private List courseList = new ArrayList();
private final String name;
private final String id;
public Student(String _name,String _id){
name = _name;
id = _id;
}
public List getFailedCourseList(){
List failedCouseList = blablabla...
return failedCouseList
}
public addCourse(Course _course){
couseList.add(_cousrse);
}
.....
}
可问题是我只是做了一些工作,使这些发生:
1.节省学生物品进入MongoDB的时候我可以做到这一点:
Student studentItem = new Student("Jone","20140314201")
studentItem.addCourse(course1)
studentItem.addCourse(course2)
....
DBC.save(studentItem)
2.从数据库取回集合,我可以只投BasicDBObject(这是默认的对象类型dbcollection findOne返回)到Class Student数据时,我定义:
Student studentJone = (Student)DBC.findOne(new BasicDBObject("name":"Jone"));
,这样我就可以找出课程通过刚刚失败调用Student类的方法:
List failedCourseList = studentJone.getFailedCourseList();