Per l'impaginazione generale puoi usare .skip()
e .limit()
modificatori sull'oggetto Query che puoi passare come argomenti al tuo metodo:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Con .skip()
essendo come possono i risultati andare oltre e .limit()
essendo la dimensione della pagina da restituire.
Quindi deriva un'istanza di MongoOperations da MongoTemplate e usa uno standard .find()
operazione da lì.
Salta e limita non è l'opzione più efficiente, prova a memorizzare gli ultimi valori visti su un indice naturale come _id
ove possibile e utilizza le query di intervallo per evitare di "saltare" migliaia di risultati.
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);