无法在mongodb中检索文档列表

时间:2014-04-14 01:26:32

标签: java json spring mongodb

{
    "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

2 个答案:

答案 0 :(得分:0)

我认为问题可能是你在上面的行中做了两次cursor.next(),一次拉两条记录。

如果你尝试怎么办?

polls.add(object)

而不是

polls.add(cursor.next())

答案 1 :(得分:0)

而不是迭代光标,你似乎想要.toArray()方法:

DBCursor cursor = collection.find();
List<DBObject> list = cursor.toArray();

通常游标是个好主意,你可能应该在该循环中构建任何数组类型的结果。但这是一种改变光标的方法。