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.