sql >> Database >  >> NoSQL >> MongoDB

Spring Custom Query met pageable

Zoals je hebt ontdekt, ondersteunt MongoTemplate niet de volledige pagina-abstractie. Zoals KneeLess al zei, je kunt de @Query . gebruiken -Annotatie om een ​​aantal aangepaste zoekopdrachten uit te voeren.

Als dit niet genoeg voor je is, kun je de Spring Repository PageableExecutionUtils gebruiken in combinatie met je MongoTemplate.

Bijvoorbeeld als volgt:

@Override
public Page<XXX> findSophisticatedXXX(/* params, ... */ @NotNull Pageable pageable) {

    Query query = query(
            where("...")
            // ... sophisticated query ...
    ).with(pageable);

    List<XXX> list = mongoOperations.find(query, XXX.class);
    return PageableExecutionUtils.getPage(list, pageable,
              () -> mongoOperations.count((Query.of(query).limit(-1).skip(-1), XXX.class));
}

Spring Repositories doen hetzelfde. Zoals je kunt zien hier , voeren ze ook twee zoekopdrachten uit.



  1. Wat is het equivalent van findOne met .aggregate in Mongodb?

  2. MongoDB Hoe een query uit te voeren met de $date-operator?

  3. MongoDB aggregatie van geneste objecten

  4. Mongodb opvragen van golang met behulp van de _id die is opgeslagen in een array