如何在MongoDB中用@Query注解实现类似findTop的查询(无需Pageable)
使用@Query注解实现MongoDB仓库的Top/Limit查询(无需Pageable参数)
你只需要在@Query注解中添加limit = 1属性,就能实现和findTop一致的限制返回第一条结果的功能,同时不需要调用方传入Pageable参数。
修改后的仓库代码如下:
public interface FooRepo extends MongoRepository<Foo, String> { @Query( value = "{ businessKey: ?0, someFilter: { $exists: false } }", sort = "{ createdDate: 1 }", limit = 1 ) Foo renamedMethod(String businessKey); }
说明:
limit = 1:直接指定MongoDB只返回匹配查询条件的第一条文档,完全替代findTop的作用;sort = "{ createdDate: 1 }":保持按createdDate升序排序,确保返回的是符合条件的最早创建的数据,和原派生查询的逻辑一致;- 调用方只需传入
businessKey参数即可,无需额外处理分页相关参数。
内容的提问来源于stack exchange,提问作者opensourcegeek
相关产品推荐
相关产品推荐

