Til generel paginering kan du bruge .skip()
og .limit()
modifikatorer på Query-objektet, som du kan sende ind som argumenter til din metode:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Med .skip()
er hvordan kan resultater gå forbi og .limit()
er sidestørrelsen, der skal returneres.
Så udled en forekomst af MongoOperations fra MongoTemplate og brug en standard .find()
operation derfra.
Spring over og begræns er dog ikke den mest effektive mulighed, prøv at gemme sidst sete værdier på et naturligt indeks som _id
hvor det er muligt, og brug intervalforespørgsler for at undgå at "springe over" gennem 1000-vis af resultater.
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);