Como descubrió, MongoTemplate no admite la abstracción de página completa. Como dijo KneeLess, puedes usar @Query
-Anotación para hacer algunas consultas personalizadas.
En caso de que esto no sea suficiente para usted, puede utilizar Spring Repository PageableExecutionUtils
en combinación con su MongoTemplate.
Por ejemplo, así:
@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 está haciendo lo mismo. Como puede ver aquí , también activan dos consultas.