MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Пролетна персонализирана заявка с възможност за страници

Както разбрахте, MongoTemplate не поддържа пълната абстракция на страницата. Както каза KneeLess, можете да използвате @Query - Анотация за извършване на някои персонализирани заявки.

В случай, че това не е достатъчно за вас, можете да използвате Spring Repository PageableExecutionUtils в комбинация с вашия MongoTemplate.

Например така:

@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 правят същото. Както можете да видите тук , те задействат и две заявки.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Свързване с MongoDB през SSL с Node.js

  2. Mongo сървърът приема идентификационни данни от shell, но не и от Java/Scala интерфейс

  3. Как да получите множество JSON обекти с помощта на nodejs и mongoose?

  4. Объркан относно терминологията Mongoose/Mongo. Поддокументите/вградените документи също ли са колекции?

  5. Как да шифровате поле в MongoDB