Như bạn đã tìm ra, MongoTemplate không hỗ trợ tóm tắt trang hoàn chỉnh. Giống như KneeLess đã nói bạn có thể sử dụng @Query
-Chú thích để thực hiện một số truy vấn tùy chỉnh.
Trong trường hợp điều này không đủ với bạn, có thể sử dụng Spring Repository PageableExecutionUtils
kết hợp với MongoTemplate của bạn.
Ví dụ như thế này:
@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 cũng đang làm như vậy. Như bạn có thể thấy tại đây , họ cũng kích hoạt hai truy vấn.