Pro obecné stránkování můžete použít .skip()
a .limit()
modifikátory na objektu Query, které můžete předat jako argumenty své metodě:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
Pomocí .skip()
jak mohou výsledky přejít a .limit()
velikost stránky, která se má vrátit.
Odvoďte tedy instanci MongoOperations z MongoTemplate a použijte standardní .find()
operace odtud.
Přeskočit a omezit však není nejvýkonnější možnost, zkuste uložit naposledy zobrazené hodnoty do přirozeného indexu, jako je _id
kde je to možné, a používejte rozsahové dotazy, abyste se vyhnuli „přeskakování“ přes 1000 výsledků.
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);