使用Java

时间:2017-01-08 14:51:53

标签: java mongodb mongodb-query

我有一个包含员工文件的集合。每个员工都有一系列文档,其中包含该员工当前参与的项目。问题是我不知道如何获取/查询项目数组?

以下是此类文件的一个示例。

{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 个答案:

答案 0 :(得分: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");
   }
}