2011-01-28 41 views
3

我需要爲集合中的文檔創建一個對象圖。 我能夠獲得所有的鍵值對。這裏是代碼是這樣做的:使用java獲取嵌套文件mongo db驅動

import com.mongodb.*; 
import java.util.*; 

public class GetKeyValuePair { 
public static void print(DBObject doc) { 
    Set<String> allKeys = doc.keySet(); 
    Iterator<String> it = allKeys.iterator(); 
    while (it.hasNext()) { 
     String temp = it.next(); 
     System.out.print(temp + "-"); 
     if (doc.get(temp) instanceof BasicDBObject) { 
      System.out.println("\n"); 
      print((DBObject) doc.get(temp)); 
     } else { 
      System.out.println(doc.get(temp)); 
     } 
    } 

} 

public static void main(String args[]) { 
    try { 
     Mongo m = new Mongo(); 
     DB db = m.getDB("test"); 
     Set<String> colls = db.getCollectionNames(); 
     DBCollection coll = db.getCollection("first"); 

     DBObject doc = new BasicDBObject(); 
     DBCursor cur = coll.find(); 
     Set<String> allKeys; 
     Iterator<String> it; 
     while (cur.hasNext()) { 
      doc = cur.next(); 
      allKeys = doc.keySet(); 
      it = allKeys.iterator(); 
      print(doc); 
      System.out.println("-------"); 
     } 

    } catch (UnknownHostException e) { 
     System.out.println(e.toString()); 
    } catch (MongoException.DuplicateKey e) { 
     System.out.println("Exception Caught" + e); 
    } 
    }} 

是否有任何其他方式我可以做到這一點,我的意思是一個相當簡單的方法。 在此先感謝

+1

我認爲你需要更好地解釋問題是什麼以及你想要做什麼。 – Theo 2011-01-28 08:43:31

回答

0

如果您的用例允許,並且現有的Java ORM映射器(如Morphia)不適用於您,則可以使用ReflectionDBObject。如果沒有,你堅持你的方法,沒有捷徑。

相關問題