MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Angeben von Cursoroptionen beim Zurückgeben eines Streams in Spring Data MongoDB?

Ihr Fehler tritt auf, weil Sie den Stream zu langsam verarbeiten, sodass der Cursor eine Zeitüberschreitung hat, bevor Sie zum nächsten Batch gelangen.

Die Stapelgröße kann auf Spring Data Query-Objekt , oder in einem Repository mit @Meta Anmerkung. Zum Beispiel:

Query query = query(where("firstname").is("luke"))
    .batchSize(100);

Oder bei Verwendung von Repositories:

@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);

Siehe Spring Data MongoDB-Dokumentation für weitere Details.

Das Cursor-Timeout kann mit derselben Konfiguration auch für einzelne Abfragen deaktiviert werden. z.B. @Meta(flags = {CursorOption.NO_TIMEOUT}) .

Das Cursor-Timeout kann nicht pro Abfrage geändert werden. Das ist eine Serverkonfiguration. Sie müssen den cursorTimeoutMillis verwenden Server-Parameter, um dies serverweit zu ändern.