为什么DynamoDB限制不能与扫描一起使用?

时间:2019-02-27 17:02:29

标签: java amazon-dynamodb limit

我正在运行以下代码:

DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
scanExpression.setLimit(100);
PaginatedScanList<T> list = dynamoDBMapper.scan(clazz, scanExpression);

检查列表的大小时,我得到的是 40,000 ,而不是 100

此外,当遍历列表时,我得到了所有40k项,而不仅仅是100k。

为什么限制无效?

使用Java客户端SDK版本1.10.77

1 个答案:

答案 0 :(得分:0)

这是size()扩展的AWS Java SDK中PaginatedList<T>方法PaginatedScanList<T>的实现:

  @Override
public int size() {
    loadAllResults();
    return allResults.size();
}

调用size()时,是在告诉SDK提取所有扫描结果,而不是检查当前页面的大小。