2017-01-08 92 views
1

我有一個包含員工文檔的集合。每個員工都有一系列文件,這些員工目前參與了這些項目。問題是我不知道如何獲取/查詢項目數組?用Java從mongoDB檢索文檔數組

這是這樣的文件的一個例子。

{name : "employe name" , age : "..employe age" , phoneNr : 12334 , projects : 
[{ projectName : "project name" , projectLeder : "project leader" }] } 

以下是用於檢索文檔中除項目數組以外的值的示例代碼。

public void printEmployees() { 

    MongoCursor<Document> cursor = coll.find().iterator(); 

     while(cursor.hasNext()) { 

      Document documentEmployee = cursor.next(); 
      System.out.println((String) documentEmployee.get("name")); 
      System.out.println((Integer) documentEmployee.get("age")); 
      System.out.println((Integer) documentEmployee.get("phoneNr")); 
      //How do i query/extract the project array? 

     } 

    }  

回答

1

你可以嘗試這樣的事情。

while(cursor.hasNext()) { 
    Document documentEmployee = cursor.next(); 
    System.out.println(documentEmployee.getString("name")); 
    System.out.println(documentEmployee.getInteger("age")); 
    System.out.println(documentEmployee.getInteger("phoneNr")); 
    //Extract 
    ArrayList projects = documentEmployee.get("project", ArrayList.class); 
    //Map 
    for (Object obj : projects) { 
     Document project = (Document) obj; 
     project.getString("projectName"); 
    } 
} 
+0

非常感謝你! – codeer