MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Spring Custom Query z możliwością stronicowania

Jak się zorientowałeś, MongoTemplate nie obsługuje pełnej abstrakcji strony. Tak jak powiedział KneeLess, możesz użyć @Query -Adnotacja do wykonania niektórych niestandardowych zapytań.

Jeśli to Ci nie wystarczy, możesz skorzystać z repozytorium Spring PageableExecutionUtils w połączeniu z MongoTemplate.

Na przykład tak:

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

Repozytoria wiosenne robią to samo. Jak widać tutaj , uruchamiają również dwa zapytania.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. wiosna boot + Apache camel + problem z integracją mongodb

  2. mongodb uzyskać cały dokument z wartości

  3. Jak walidować w Mongoose tablicę i jednocześnie jej elementy?

  4. mongodb aktualizuje cały dokument, zwiększając wartość o 1

  5. Nie można połączyć się z mongo na zdalnym serwerze