sql >> Databasteknik >  >> NoSQL >> MongoDB

Iterera över stor samling i MongoDB via vårdata

Sen svar, men kanske hjälper någon i framtiden. Springdata tillhandahåller inget API för att omsluta Mongo DB Cursor Förmågor. Den använder den inom find metoder, men returnerar alltid en komplett lista med objekt. Alternativen är att använda Mongo API direkt eller att använda Spring Data Paging API , något liknande:

        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 (!) Den här metoden är inte tillräcklig för stora uppsättningar data (se @Shawn Bush kommentarer) Använd Mongo API direkt för sådana fall.



  1. Hur fungerar MongoDB $text-sökning?

  2. Predis med laravel 5.5 Inga anslutningar tillgängliga i poolen i Aggregate/RedisCluster.php:337

  3. Hur MongoDB skiljer sig från en SQL-databas

  4. Exempel på att använda RedisStore i socket.io