2017-01-08 88 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