使用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();
答案 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
。 :)