【发布时间】:2017-12-21 20:14:21
【问题描述】:
当尝试使用 spring 的分页或切片来迭代一个非常大的 mongodb 集合时,程序运行正常,但在某些时候下一页/切片是空的,并且在调试中有“页面/切片包含未知实例”的消息.
这是代码示例:
do {
Pageable pageable = new PageRequest(pageNumber, PAGE_SIZE, sort);
nextPage = catsRepository.findByTypeAndIdGreaterThan("street cat", lastId,
pageable);
dbRecords = nextPage.getContent();
if (dbRecords.size() > 0) {
lastId = new ObjectId( doSomthing());
pageNumber++;
}
} while (nextPage.hasNext());
另外,当使用不同的页面大小时,问题的位置似乎不同:
使用大小为 1 的切片运行后,切片 133 出现问题
使用大小为 2 的切片运行后,切片 98 出现问题
使用大小为 3 的切片运行后,切片 76 出现问题
数据库中是否存在可能导致此问题的格式错误的文档?
在迭代过程中,我计算了预期的切片/页数,并且循环在达到该数字之前停止。
什么会导致这样的事情?
谢谢。
【问题讨论】:
标签: java spring mongodb pagination slice