2014-11-04 99 views
0

我开始使用MongoDb并开发一个连接到这个Mongo数据库的小型Web应用程序。 我有一个DAO方法,根据分配给用户的电子邮件地址从数据库中找到用户。每个用户应该有一个唯一的电子邮件地址,所以我可以假设我只会得到一个文档。那么如何将DBObject转换为用户实体?使用MongoDB将DBObject转换为POJO Java

这里我的代码:

@Override 
public User findUserByEmailAddress(String email) { 
    DB db=MongoHelper.getDb(); 


    BasicDBObject query = new BasicDBObject(); 
    query.put("email", email); 
    DBCollection users=db.getCollection("users"); 
    DBCursor cursor = users.find(query); 

    DBObject user=cursor.next(); 

    //Code to convert the DBObject to a User and return the User 
} 

非常感谢你提前!

回答

1

DBObject是一个地图,所以你可以通过简单地访问相应的键来获得所需的值。

例如:

DBObject query = QueryBuilder.start("email").is(email).get(); 
DBCursor cursor = users.find(query); 

while (cursor.hasNext()) { 

    DBObject user = cursor.next(); 
    String firstName = (String)user.get("first_name"); 
    String lastName = (String)user.get("last_name"); 

    //TODO: use extracted properties to build User object 
} 

请注意,根据文档结构,返回的属性可以是自己的地图。所以需要适当的铸造。另外,我不会假设文档数据库中每个用户只能有一封电子邮件(由于错误,输入错误等)。它应该在应用程序级别上执行。