java链接MongoDB处理大量数据时常常碰到cursor not found 的异常,事实上是超时所致
Exception in thread "main" com.mongodb.MongoException$CursorNotFound: cursor not found on server at com.mongodb.DBApiLayer$Result.init(DBApiLayer.java:379) at com.mongodb.DBApiLayer$Result._advance(DBApiLayer.java:426) at com.mongodb.DBApiLayer$Result.hasNext(DBApiLayer.java:408) at com.mongodb.DBCursor._hasNext(DBCursor.java:495) at com.mongodb.DBCursor.hasNext(DBCursor.java:515)
解决方法非常easy:DBCursor cursor = collection.find(condtion); cursor.addOption(com.mongodb.Bytes.QUERYOPTION_NOTIMEOUT);
仅仅要在查询的DBCursor加入com.mongodb.Bytes.QUERYOPTION_NOTIMEOUT就解决!