Resposta tardia, mas talvez ajude alguém no futuro. Os dados do Spring não fornecem nenhuma API para encapsular o Mongo DB Cursor capacidades. Ele o usa dentro de
find
métodos, mas sempre retorna a lista completa de objetos. As opções são usar a API Mongo diretamente ou usar a API Spring Data Paging , algo parecido: 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 (!) Este método não é suficiente para grandes conjuntos de dados (veja os comentários de @Shawn Bush) Por favor, use a API do Mongo diretamente para esses casos.