【发布时间】:2017-07-20 16:30:03
【问题描述】:
我有这个使用 spring 框架从 MongoDB 获取项目列表的 java 代码:
@Autowired
private PersonsRepository personsRepository;
...
...
// the name field is NOT INDEXED!
List<Person> dbRecords = personsRepository.findByName("John");
for (Person person: dbRecords) {
//do something
}
我需要查询的字段未编入索引,近期无法更改。
由于 db 包含 1 亿条记录,而输出列表预计包含 10 亿条记录,我有几个问题:
- 查询本身 (getByName) 需要很长时间(几个小时后仍未完成)。我怎样才能做得更好?
- 如何通过分页查询数据?
谢谢
【问题讨论】:
-
在没有适当索引的情况下查询具有数百万条记录的集合有点愚蠢...如果您甚至无法创建索引,那么甚至没有理由将主题作为分片提出因为那时你可能也无法改变它。
-
您是否尝试过使用
Pageable?
标签: java spring mongodb pagination