MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come possiamo implementare l'impaginazione per Mongodb Collection usando mongoTemplate

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);