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

Iterieren Sie über große Sammlungen in MongoDB über spring-data

Späte Antwort, aber vielleicht hilft jemand in der Zukunft. Spring Data stellt keine API zum Umschließen von Mongo DB Cursor bereit Fähigkeiten. Es verwendet es innerhalb von find Methoden, gibt aber immer eine vollständige Liste von Objekten zurück. Optionen sind die direkte Verwendung der Mongo-API oder die Verwendung der Spring Data Paging API , etwa so:

        final int pageLimit = 300;
        int pageNumber = 0;
        Page<T> page = repository.findAll(new PageRequest(pageNumber, pageLimit));
        while (page.hasNextPage()) {
            processPageContent(page.getContent());
            page = repository.findAll(new PageRequest(++pageNumber, pageLimit));
        }
        // process last page
        processPageContent(page.getContent());

UPD (!) Diese Methode ist nicht ausreichend für große Datenmengen (siehe Kommentare von @Shawn Bush) Bitte verwenden Sie für solche Fälle direkt die Mongo-API.