2014-11-04 96 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 
} 

請注意,根據文檔結構,返回的屬性可以是自己的地圖。所以需要適當的鑄造。另外,我不會假設文檔數據庫中每個用戶只能有一封電子郵件(由於錯誤,輸入錯誤等)。它應該在應用程序級別上執行。