spring - Spring mongo 存储库:查找前 n 个项目
问题描述
我有一个带有 mongodb 的 spring 后端。我想查询数据库以在一个框中获取“n”个 POI(兴趣点)。此查询工作正常
poisRepository.findTop10ByLocationWithin(box);
但我想把它扩展到这样的东西:
poisRepository.findTopXByLocationWithin(10, box);
我在文档中找不到如何做到这一点。除了获取所有结果并通过代码过滤它们之外,还有其他方法可以做到这一点吗?
解决方案
我使用 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 传递,依此类推。希望能帮助到你。
推荐阅读
- javascript - 如何正确使用 GraphQL 订阅?
- php - 为什么 php 文件在 CLI 中有效,但在浏览器中无效?
- c++ - 有没有办法将 cpp 11 中的别名 std::make_pair 函数键入 abc::make_pair?
- upload - 有没有办法用 ABP 框架上传文件
- javascript - js 函数有时只在 Firefox 中有效,但在我的其他浏览器中一直有效
- c++ - 逆向工程 - 这是一个便宜的 3D 距离函数吗?
- json - 位置 471 处的 JSON 中的意外字符串
- api - 如何使用变量发送补丁 api 请求
- python - 为什么python3在文件写入方面比python2慢
- python-3.x - Python子类方法从超类方法继承装饰器