//这是我在一个项目中负责的一个问题,本来是调的通用接口,一下把所有的数据进行加载出来,导致有部分数据加载慢,大概3000多条数据花3秒左右,但我所需要的是其中一个功能加快,所以单独写了一个接口。
其中还遇到了一些其他问题,比如用到的Sort时,对于MongoDB Server它的最大内存限制为32M,最后解决办法是扩容就🆗了
@GetMapping("/queryDtxx")
public Map<String, Object> queryDtxx(@RequestParam int page, @RequestParam int pageSize) {
Query query = new Query();
Criteria criteria = Criteria.where("data.category").is("动态信息");
query.addCriteria(criteria);
Pageable pageable = PageRequest.of(page-1, pageSize);
int totalCount = (int)mongoTemplate.count(query,"what");
List<Document> list = mongoTemplate.find(query.with(pageable).with(Sort.by(
Sort.Order.desc("data.publishDate")
)), Document.class, "what");
int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
Map<String, Object> map = new HashMap<>();
map.put("totalCount", totalCount);
map.put("data", list);
map.put("totalPage", totalPage);
System.out.println(totalCount);
return map;
}