MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Esegui l'iterazione su una raccolta di grandi dimensioni in MongoDB tramite i dati primaverili

Risposta in ritardo, ma forse aiuterà qualcuno in futuro. I dati di primavera non forniscono alcuna API per eseguire il wrapping di Mongo DB Cursor capacità. Lo usa all'interno di find metodi, ma restituisce sempre un elenco completo di oggetti. Le opzioni sono utilizzare direttamente l'API Mongo o utilizzare l'API Spring Data Paging , qualcosa del genere:

        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 (!) Questo metodo non è sufficiente per grandi insiemi di dati (vedi i commenti di @Shawn Bush) Usa l'API Mongo direttamente per questi casi.