【问题标题】:Spring java MongoDB @Query annotation for order top or first records用于订单顶部或第一条记录的 Spring java MongoDB @Query 注释
【发布时间】:2015-11-18 13:42:26
【问题描述】:

我使用 @Query 注释和 crudRepository 从 MongoDB 获取数据。 示例:

@Query("{$query: id: ?0}, $orderby: {dateTime: -1}}")
public List<A> findId(
    Integer id, Pageable pageable
);

如果我只想获取集合的前 N ​​条记录,或者只获取集合的前 N ​​条记录,我需要在 @Query 表示法中添加什么?我想使用动态查询和动态设置限制和顺序(第一或最高记录)。

【问题讨论】:

标签: java spring mongodb


【解决方案1】:

您可以将您的@Query 附加到 $limit : 10,或者重命名您的方法,例如:find First10ByDateDesc()

【讨论】:

  • 在这种情况下,我获取前 10 条记录。如果我想获取前 10 条记录,需要附加什么?
  • 实际上这不是正确的答案,因为您没有使用聚合框架,但您可以通过重命名方法来推断您的查询:名为 findFirst10OrderByDateTimeDesc 的方法应该可以正常工作。
  • 在这种情况下,我无法动态更改记录限制
【解决方案2】:

使用@Query的变量排序:

@Query(value = "{}", sort = "{ _id : -1 }")

"order by id desc" 为例。

【讨论】:

    猜你喜欢
    • 2021-04-02
    • 2022-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    相关资源
    最近更新 更多