我是java的新手。 我正在使用java-mongodb在window-builder中进行搜索。
当我执行以下代码时,我得到运行时异常错误。
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "Ticket" );
System.out.println("Connect to database successfully");
DBCollection coll = db.getCollection("OnlineT");
System.out.println("Collection created successfully");
F_stn = (String)fm.getSelectedItem();
T_stn = (String)to.getSelectedItem();
BasicDBObject doc = new BasicDBObject("From",F_stn);
BasicDBObject doc1 = new BasicDBObject("To",T_stn);
DBCursor ser = coll.find(doc);
DBCursor ser2 = coll.find(doc1);
while(ser.hasNext())
{
String data=ser.next().get("To").toString();
System.out.println(data);
if(data.equals(T_stn))
{
System.out.println("i m in");
String dis=ser.next().toString();
System.out.println(dis);
break;
}
else
System.out.println("No data found");
}
}
它工作正常但是当它进入if循环时它没有打印DBobject。
请建议我一些方法来做到这一点。提前谢谢..
答案 0 :(得分:0)
在" if"循环,你有: String dis = ser.next()。toString();
这使您的光标移动到下一个位置,并且它没有检查hasNext()。我认为这就是问题
相反,您可以执行以下操作:
while(ser.hasNext()){
DBObject dbObject = ser.next();
String data=dbObject.get("To").toString();
System.out.println(data);
if(data.equals(T_stn))
{
System.out.println("i m in");
System.out.println(dbObject);
break;
}
else
System.out.println("No data found");
另外,你不需要toString()进行打印,println()会自动调用toString()方法的对象