Pour la pagination générale, vous pouvez utiliser le .skip()
et .limit()
modificateurs sur l'objet Query que vous pouvez passer en tant qu'arguments à votre méthode :
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Avec .skip()
étant combien de résultats peuvent aller au-delà et .limit()
étant la taille de la page à renvoyer.
Dérivez donc une instance de MongoOperations de MongoTemplate et utilisez un .find()
standard opération à partir de là.
Ignorer et limiter n'est pas l'option la plus performante, essayez de stocker les dernières valeurs vues sur un index naturel comme _id
dans la mesure du possible et utilisez des requêtes de plage pour éviter de "sauter" des milliers de résultats.
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);