MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment pouvons-nous implémenter la pagination pour la collection Mongodb en utilisant mongoTemplate

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