MongoDB使用mongoTemplate进行排序操作

  • 最近在使用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")
    ));

相关资料:

https://blog.csdn.net/qq_41402200/article/details/82149110

发布了24 篇原创文章 · 获赞 14 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/biubiu2it/article/details/87898334