Concordo com Remon, mas você menciona lotes de 1000, que a resposta dele realmente não cobre. Você pode definir um tamanho de lote no cursor:
cursor.batch_size(1000);
Você também pode pular registros, por exemplo:
cursor.skip(4000);
É isso que você está procurando? Este é efetivamente um padrão de paginação. No entanto, se você estiver apenas tentando evitar o esgotamento da memória, não precisará definir o tamanho do lote ou pular.