Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongo Db Java查询中的运行时异常_Java_Mongodb_Runtimeexception_Windowbuilder - Fatal编程技术网

Mongo Db Java查询中的运行时异常

Mongo Db Java查询中的运行时异常,java,mongodb,runtimeexception,windowbuilder,Java,Mongodb,Runtimeexception,Windowbuilder,我是java新手。 我正在使用JavaMongoDB在WindowBuilder中进行搜索 当我执行下面的代码时,我得到运行时异常错误 try{ // To connect to mongodb server MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // Now connect to your databases DB db = mongoClient.get

我是java新手。 我正在使用JavaMongoDB在WindowBuilder中进行搜索

当我执行下面的代码时,我得到运行时异常错误

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

请给我建议一些方法。提前感谢。

在“如果”循环中,您有: 字符串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()方法

可以发布日志吗?显示完整的堆栈跟踪。我们不是通灵者。谢谢你,先生。我弄错了。@user3462650如果对你有帮助的话,别忘了接受答案:)