使用MongoDB 3.2.0 Java驱动程序提取多个字段

时间:2016-01-09 15:50:09

标签: java mongodb

使用MongoDB 3.2.0 Java驱动程序,它提供了一个与“BasicDBObject”或“DBObject”不同的Document对象,我想提取给定文档中的所有字段。例如,我有这个文件:

{ "sponsor" : "ABC Bicycles", "start" : "Herndon", "miles" : 50 }

我想使用Iterator提取“赞助商”,“开始”和“里程”的值。我试过了:

theSponsor = cursor.next().get("sponsor").toString();

适用于“赞助商”字段,但如何使用相同的光标为同一问题提取“开始”和“里程”的值?也许我需要的不是

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

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

String sponsor;
String start;
String miles;
Document doc;

while(cursor.hasNext()){
    doc = cursor.next();
    sponsor = doc.get("sponsor").toString();
    start = doc.get("start").toString();
    miles = doc.get("miles").toString();

    // Process your values and go to the next record 
}

您应该检查文档中是否存在您的字段(据我记得,Mongo API用于在无法找到字段的情况下抛出一些异常)。当然,在调用toString()方法之前,请检查对象是否不是null以避免NullPointerException。 :)