【问题标题】:Spring Mongo Paging with sorting with MongoRepository使用 MongoRepository 进行排序的 Spring Mongo 分页
【发布时间】:2018-11-15 18:28:16
【问题描述】:

文档结构 - message{obj_id,post_id,message_time,message_text} 和 @key 是 obj_id

问题陈述:我只想获取所有包含 post_id: 'anything' 的数据,并根据 message_time 进行排序并希望每次在结果中自定义分页。现在我正在根据 link:https://stackoverflow.com/a/10077534/9901300 实现下面提到的代码。但是找不到每次我应该在哪里提供不同的 post_id 来搜索结果。

请查看下面的代码。

public interface MessageMongoRepository extends 
MongoRepository<Message, String> {

@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostIdSorted(Pageable pageable);
}

服务:

@Override
public List<Message> getByPostId(String PostId, int page, int size) {
    List<Message> messages = new ArrayList<>();
    @SuppressWarnings("deprecation")
    PageRequest request = new PageRequest(page, size, new Sort(Sort.Direction.DESC, "message_time"));
    messages = messageRepository.findByPostIdSorted(request).getContent();
    return messages;
}

【问题讨论】:

    标签: mongodb sorting pagination spring-mongo mongorepository


    【解决方案1】:

    我想这就是你要找的:

    存储库:

    @Query("{ 'post_id' : ?0 }")
    Page<Message> findByPostId(String postId, Pageable pageable);
    

    服务

    messages = messageRepository.findByPostId(postId, request).getContent();
    

    您可以将 postId 传递给存储库中定义的方法

    【讨论】:

    • 谢谢,Kency :) 这正是我想要的。
    • @Arpan Jain 欢迎 :)
    猜你喜欢
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2015-10-29
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多