Come hai capito, MongoTemplate non supporta l'astrazione completa della pagina. Come ha detto KneeLess, puoi usare @Query
-Annotazione per eseguire alcune query personalizzate.
Se questo non è abbastanza per te, puoi utilizzare il repository di primavera PageableExecutionUtils
in combinazione con il tuo MongoTemplate.
Ad esempio in questo modo:
@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));
}
I repository di primavera stanno facendo lo stesso. Come puoi vedere qui , attivano anche due query.