如果页面大小为 10 并且
pageNumber
为 0,对于给定条件,如果我从 mongodb 获取 50 个文档,
那么
total_documents
应该是50,msList应该有第1个10个文档(DTO)的详细信息(因为pageNumber
是0,即分页)
Query query = new Query();
List<Criteria> criteria = new ArrayList<>(); criteria.add(Criteria.where("di.ai").in(new ArrayList<>(Arrays.asList("123"))));
query.addCriteria(new Criteria().andOperator(criteria.toArray(new Criteria[criteria.size()])));
Long total_documents = this.mongoTemplate.count(query, NSDTO.class, MONGODB_MESSAGE_COLLECTION);
Pageable pageable = PageRequest.of((pageNumber - 1), pageSize);query.with(pageable);
List<NSDTO> nsList= this.mongoTemplate.find(query, NSDTO.class, MONGODB_MESSAGE_COLLECTION);"
我可以使用上面的代码实现此功能,但这里的问题是我们进行了 mongodb 调用 2 次。
是否可以仅使用一次 mongodb 调用来实现相同的功能?
有人可以在这方面提供帮助吗?
执行分页时,通常使用两个查询:第一个查询将计算总大小,第二个查询使用两个参数返回实际记录:
pageNumber
和pageSize
。