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

如何在Java中对MongoDB查询结果进行排序?,java,mongodb,sorting,database,nosql,Java,Mongodb,Sorting,Database,Nosql,我使用的是来自Java的MongoDB,我用这一行来检索一些数据: @Query("{'buyerId': ?0, 'status': ?1 }") Page<CardOrder> getBuyerOrders(final String profileId, final Pageable pageable); 如何在@Query注释中合并这两个查询 (i.e @Query("{'buyerId': ?0, 'status': ?1 }{"created": 1}")) 谢谢。

我使用的是来自Java的MongoDB,我用这一行来检索一些数据:

@Query("{'buyerId': ?0, 'status': ?1  }")
Page<CardOrder> getBuyerOrders(final String profileId, final Pageable pageable);
如何在@Query注释中合并这两个查询

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

谢谢。

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

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

--更新--

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

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

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

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

--更新--

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

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

请发布您正在使用的完整java代码,是否使用JPA?抱歉,我不想听起来不礼貌,但这不是必需的,我只需要查询,不需要java代码。这件事在查询中无法管理,因为java有自己的解析器,最终将查询转换为本机mongo查询,排序参数可以通过java cod传递,所以代码是必需的。请发布您正在使用的完整java代码,是否使用JPA?抱歉,我不想听起来不礼貌,但这不是必需的,我只需要查询,不需要java代码。这件事在查询中无法管理,因为java有自己的解析器最终将查询转换为本机mongo查询,排序参数可以通过JavaCOD传递,所以代码很简单;那个排序是来自import org.springframework.data.domain.Sort;?是的,这是来自感谢我的朋友,我会尝试一下,并将您的解决方案标记为有效。它不允许我使用不幸的是,看起来Pageable和sort不兼容:原因:java.lang.IllegalStateException:方法不能有Pageable和sort参数。改为在Pageble上使用排序功能!冒犯的方法。如何使用pageable进行排序?我已经对答案进行了更新,您应该能够使用pageable对象作为参数进行排序,如上所述。非常感谢您的答案;那个排序是来自import org.springframework.data.domain.Sort;?是的,这是来自感谢我的朋友,我会尝试一下,并将您的解决方案标记为有效。它不允许我使用不幸的是,看起来Pageable和sort不兼容:原因:java.lang.IllegalStateException:方法不能有Pageable和sort参数。改为在Pageble上使用排序功能!冒犯的方法。如何使用pageable进行排序?我已经对答案进行了更新,您应该能够使用pageable对象和排序作为参数,如上所述。