Java MongoDB获取子文档的值

Dhr*_*ruv 5 java mongodb mongodb-java

我试图从子文档中获取密钥的值,我似乎无法弄清楚如何使用BasicDBObject.get()函数,因为密钥嵌入了两层深.这是文档的结构

File { 
  name: file_1
    report: {
      name: report_1,
      group: RnD
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上一个文件有多个报告,我需要检索给定文件中所有报告的名称.我能够做到BasicDBObject.get("name"),我可以获得值"file_1",但我该如何做这样的事情BasicDBObject.get("report.name")?我尝试过,但它没有用.

Par*_*ade 11

您应首先获取"报告"对象,然后访问其内容.您可以在下面看到示例代码.

DBCursor cur = coll.find();

for (DBObject doc : cur) {
    String fileName = (String) doc.get("name");
    System.out.println(fileName);

    DBObject report = (BasicDBObject) doc.get("report");
    String reportName = (String) report.get("name");
    System.out.println(reportName);
}
Run Code Online (Sandbox Code Playgroud)