Spring mongo 存储库:查找前 n 个项目

Spring mongo repository: find top n items

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

poisRepository.findTop10ByLocationWithin(box);

但我想把它扩展成这样:

poisRepository.findTopXByLocationWithin(10, box);

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

我使用 @Query from spring and $box mongo query

找到了答案

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

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

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