Ich erhalte diesen Fehler wiederholen:Wollen Sie durch die Hälfte der mongoDB und durchlaufen den Rest der Hälfte mit einer anderen Abfrage
Exception in thread "main" com.mongodb.MongoCursorNotFoundException: Query failed with error code -5 and error message 'Cursor 304054517192 not found on server mongodb2:27017' on server mongodb2:27017 at com.mongodb.operation.QueryHelper.translateCommandException(QueryHelper.java:27) at com.mongodb.operation.QueryBatchCursor.getMore(QueryBatchCursor.java:215) at com.mongodb.operation.QueryBatchCursor.hasNext(QueryBatchCursor.java:103) at 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)
, die ich nehme an, weil die Abfrage zu lange lief.
Also ich plane, Mongo mit find()
abzufragen und durch die Hälfte der Sammlungen zu iterieren.
Dann möchte ich eine andere find()
Abfrage verwenden und durch die verbleibende Hälfte der Sammlungen durchlaufen.
Konnten Sie helfen, wie man den Cursor direkt an die halbe Position der Sammlung setzt? The documentation does not seem to provide irgendwelche Funktionen dafür.
Ich benutze im Grunde nur eine find()
und Iterating durch eine Sammlung mit 100000 Datensätze, während mit einem Server über ssh
verbunden ist.
MongoCollection history = jongo.getCollection("historyCollection");
MongoCursor<MyClass> allHistories = history.find().as(MyClass.class);
//---Iterate thru all histories
while (allHistories.hasNext()) {
MyClass oneHistory = allHistories.next();
}