java - 为什么 DynamoDB 限制不适用于扫描?
问题描述
我正在运行以下代码:
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
scanExpression.setLimit(100);
PaginatedScanList<T> list = dynamoDBMapper.scan(clazz, scanExpression);
检查列表的大小时,我得到40,000而不是100。
此外,在遍历列表时,我得到了所有 40k 项,而不仅仅是 100 个。
为什么限制不起作用?
使用 java 客户端 SDK 版本1.10.77
。
解决方案
这是AWS Java SDK中该size()
方法的实现,它扩展了:PaginatedList<T>
PaginatedScanList<T>
@Override
public int size() {
loadAllResults();
return allResults.size();
}
当您调用 时size()
,您是在告诉 SDK 获取扫描的所有结果,而不是检查当前页面的大小。
推荐阅读
- javascript - pdfform.js 库不仅仅在选择框和复选框中编码
- python - 如何在纸浆中使约束具有弹性?
- python - 货币未显示在 MoneyField 的总和中
- python - 如何在字符串d中指定一个字符串
- python - 如何使用open cv python从倾斜图像中获取拉直图像
- python - 如何区分列表列表中的每个元素?
- android - CameraX 和 MediaRecorder 用于录制视频
- flutter - Flutter Package:未压缩的包存档太大
- vaadin - Vaadin Flow Treegrid - 展开后的空行
- c++ - 根据数组内容查找文档 [MongoDB, C++]