जैसा कि आपको पता चला, MongoTemplate पूरे पेज एब्स्ट्रैक्शन का समर्थन नहीं करता है। जैसे KneeLess ने कहा कि आप @Query
. का उपयोग कर सकते हैं -कुछ कस्टम क्वेरी करने के लिए एनोटेशन।
यदि यह आपके लिए पर्याप्त नहीं है, तो स्प्रिंग रिपोजिटरी का उपयोग कर सकते हैं 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));
}
स्प्रिंग रिपोजिटरी वही कर रहे हैं। जैसा कि आप देख सकते हैं यहां , वे दो प्रश्नों को भी सक्रिय करते हैं।