MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie können wir die Paginierung für die Mongodb-Sammlung mit mongoTemplate implementieren

Für allgemeine Paginierung können Sie .skip() verwenden und .limit() Modifikatoren für das Query-Objekt, die Sie als Argumente an Ihre Methode übergeben können:

    Query query = new Query();
    query.addCriteria(Criteria.where("a").is("b"));
    query.skip(10);
    query.limit(10);

    List<Foo> results = mongoOperation.find(query, Foo);

Mit .skip() So können Ergebnisse passieren und .limit() ist die zurückzugebende Seitengröße.

Leiten Sie also eine Instanz von MongoOperations von MongoTemplate ab und verwenden Sie ein standardmäßiges .find() Betrieb von dort aus.

Skip and limit ist jedoch nicht die leistungsfähigste Option, versuchen Sie, zuletzt gesehene Werte in einem natürlichen Index wie _id zu speichern Verwenden Sie nach Möglichkeit Bereichsabfragen, um zu vermeiden, dass Tausende von Ergebnissen "übersprungen" werden.

    Query query = new Query();
    query.addCriteria(Criteria.where("_id").gt(lastSeen));
    query.limit(10);