{
"question":"what is your color?",
"choices":[{"option":"yello"},{"option":"blue"}],
"creation-date":"2014-04-13",
"expiry date":"2014-04-14"
}
为了检索民意调查清单
public List<Poll> getPolls()
{
try {
mongoClient=new MongoClient("NavDeep",27017);
db=mongoClient.getDB("sms-voting");
collection=db.getCollection("pollsCollection");
} catch(Exception e){
e.printStackTrace();
}
List<Poll> polls = new ArrayList<Poll>();
DBCursor cursor=collection.find();
while(cursor.hasNext())
{
DBObject object = cursor.next();
what should i write in order to retrieve List<Poll>????
}
}
mongoClient.close();
return polls;
}
但是我在BasicDBList pollList =(BasicDBList)object.get(&#34; pollsCollection&#34;)附近得到空指针异常; 任何身体都可以帮帮我。我应该在里面写什么get()??
Thnks, deepthi
答案 0 :(得分:0)
我认为问题可能是你在上面的行中做了两次cursor.next(),一次拉两条记录。
如果你尝试怎么办?
polls.add(object)
而不是
polls.add(cursor.next())
答案 1 :(得分:0)
而不是迭代光标,你似乎想要.toArray()
方法:
DBCursor cursor = collection.find();
List<DBObject> list = cursor.toArray();
通常游标是个好主意,你可能应该在该循环中构建任何数组类型的结果。但这是一种改变光标的方法。