Voor algemene paginering kunt u de .skip()
. gebruiken en .limit()
modifiers op het Query-object die u als argumenten aan uw methode kunt doorgeven:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Met .skip()
zijnde hoe kunnen resultaten voorbij gaan en .limit()
zijnde de paginagrootte om terug te keren.
Leid dus een instantie van MongoOperations af van MongoTemplate en gebruik een standaard .find()
bediening vanaf daar.
Overslaan en beperken is echter niet de meest performante optie, probeer de laatst geziene waarden op te slaan op een natuurlijke index zoals _id
waar mogelijk en gebruik bereikquery's om te voorkomen dat u duizenden resultaten "overslaat".
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);