如何在Java中对MongoDB查询的结果进行排序?

时间:2015-09-23 09:54:17

标签: java mongodb sorting database nosql

我正在使用Java中的MongoDB,我有这一行来检索一些数据:

@Query("{'buyerId': ?0, 'status': ?1  }")
Page<CardOrder> getBuyerOrders(final String profileId, final Pageable pageable);

我想按“创建”字段对它们进行排序。

{"created": 1}

如何在@Query注释中合并这两个查询?

(i.e @Query("{'buyerId': ?0, 'status': ?1  }{"created": 1}"))

感谢。

1 个答案:

答案 0 :(得分:4)

不确定是否可以在@Query注释中合并两者,但是您可以通过将其添加到查询方法并动态地使您的存储库方法使用 Sort 参数 Sort 实例中的管道,将应用于@Query中定义的查询:

@Query("{ buyerId: ?0, status: ?1 }")
List<Thing> findThingsByUserIdAndStatus(String buyerId, String status, Sort sort);

调用方法:

repository.findThingsByUserIdAndStatus("foo", "ACTIVE", new Sort(Sort.Direction.DESC, "created"));

- 更新 -

要使用Pageable排序,请将排序实例作为参数添加到Pageable对象:

PageRequest request = new PageRequest(0, 1, new Sort(Sort.Direction.DESC, "created"));
repository.getBuyerOrders("foo", request);