- 最近在使用MongoDB做日志存储,查询日志时需要用到排序操作,于是网上查了一下资料【这里面有mongoTemplate的基本用法】,但是这里面的排序操作并不能满足业务的需求。
- 我需要的是按照不同的字段,可以按照不同的规则进行排序,资料中的方法只能按照一种规则对多个字段进行排序。于是看了一下org.springframework.data.domain.Sort类的源码,发现了一个方法:
public static Sort by(List<Sort.Order> orders) {
Assert.notNull(orders, "Orders must not be null!");
return orders.isEmpty() ? unsorted() : new Sort(orders);
}
- 这个方法的参数需要的是Order对象的集合,所以是可以实现我的需求的,代码如下:
Query query = new Query();
Criteria criteria = Criteria.where("id").is(id);
query.addCriteria(criteria);
query.skip((pageNum - 1) * pageSize);
query.limit(pageSize);
query.with(Sort.by(
Sort.Order.asc("readOrNot"),
Sort.Order.desc("sendTime")
));
相关资料: