我收到此错误:
线程“主”com.mongodb.MongoCursorNotFoundException 中的异常:查询失败,错误代码 -5 和错误消息 'Cursor 304054517192 not found on server mongodb2:27017' on server mongodb2:27017 at com.mongodb.operation.QueryHelper.translateCommandException(QueryHelper .java:27) 在 com.mongodb.operation.QueryBatchCursor.getMore(QueryBatchCursor.java:215) 在 com.mongodb.operation.QueryBatchCursor.hasNext(QueryBatchCursor.java:103) 在 com.mongodb.MongoBatchCursorAdapter.hasNext(MongoBatchCursorAdapter. java:46) at com.mongodb.DBCursor.hasNext(DBCursor.java:155) at org.jongo.MongoCursor.hasNext(MongoCursor.java:38) at com.abc.Generator.Generate(Generator.java:162) at com.abc.main.main(main.java:72)
我认为这是因为查询运行时间过长。
所以我打算使用find()
和遍历一半的集合来查询 mongo。
然后我想使用另一个find()
查询并遍历剩余的一半集合。
您能否帮助如何将光标直接放在集合的第一半位置?该文档似乎没有为它提供任何功能。
我基本上只是使用一个find()
并遍历一个包含 100000 条记录的集合,同时通过ssh
.
MongoCollection history = jongo.getCollection("historyCollection");
MongoCursor<MyClass> allHistories = history.find().as(MyClass.class);
//---Iterate thru all histories
while (allHistories.hasNext()) {
MyClass oneHistory = allHistories.next();
}