sql >> Database >  >> NoSQL >> MongoDB

Herhaal grote verzamelingen in MongoDB via spring-data

Late reactie, maar misschien kan iemand er in de toekomst nog wat aan hebben. Spring-gegevens bieden geen API om Mongo DB Cursor . in te pakken mogelijkheden. Het gebruikt het binnen find methoden, maar retourneert altijd een voltooide lijst met objecten. Opties zijn om Mongo API rechtstreeks te gebruiken of om Spring Data Paging API . te gebruiken , zoiets:

        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 (!) Deze methode is niet voldoende voor grote datasets (zie @Shawn Bush opmerkingen) Gebruik de Mongo API rechtstreeks voor dergelijke gevallen.



  1. mongodb-aggregatieraamwerk - Haal het veld van het eerste document van de geneste array op

  2. Wat is het verschil tussen de methode insert(), insertOne() en insertMany()?

  3. pymongo kan geen verbinding maken met de database op de externe server

  4. Hoe subdocumenten te selecteren met MongoDB