首页 > 解决方案 > Spring mongo 存储库:查找前 n 个项目

问题描述

我有一个带有 mongodb 的 spring 后端。我想查询数据库以在一个框中获取“n”个 POI(兴趣点)。此查询工作正常

poisRepository.findTop10ByLocationWithin(box);

但我想把它扩展到这样的东西:

poisRepository.findTopXByLocationWithin(10, box);

我在文档中找不到如何做到这一点。除了获取所有结果并通过代码过滤它们之外,还有其他方法可以做到这一点吗?

标签: springmongodbrepository

解决方案


我使用 spring 中的@Query$box mongo 查询找到了答案

在我的实现中,我最终使用了以下方法,分页

Pageable pageRequest = new PageRequest(page, pageSize);
Page<Poi> poisPage = poisRepository.findByLocationWithin(box, pageRequest);
List<Poi> pois = poisPage.getContent();

因此,如果我需要前 20 个 pois,我将 20 作为 pageSize 传递,依此类推。希望能帮助到你。


推荐阅读