sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan vi implementera paginering för Mongodb Collection med mongoTemplate

För allmän sidnumrering kan du använda .skip() och .limit() modifierare på Query-objektet som du kan skicka in som argument till din 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);

Med .skip() är hur kan resultaten gå förbi och .limit() är den sidstorlek som ska returneras.

Så härled en instans av MongoOperations från MongoTemplate och använd en standard .find() operation därifrån.

Skip and limit är dock inte det mest effektiva alternativet, försök att lagra senast sett värden på ett naturligt index som _id där det är möjligt och använd intervallfrågor för att undvika att "hoppa över" 1000-tals resultat.

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


  1. Kräver Redis Cache i .NET Core 3 användning av Stack Exchange-paketet?

  2. En översikt över WiredTiger Storage Engine för MongoDB

  3. Hur grupperar man mongodb - mapMinska utdata?

  4. Mongodb startvarningar efter uppdatering