Sum*_*era 4 amazon-dynamodb aws-sdk aws-lambda amazon-dynamodb-streams
我有一个包含数千个数据的DynamoDb表.我正在使用扫描功能扫描表格,我已经应用了"Between"FilterExpression.但是,查询响应仅提供3条记录,而它应返回约100条记录.
我使用Node js创建了Lambda函数.
另一个常见问题可能是在LastEvaluatedKey为空之前是否执行扫描.
如果您已经这样做但仍未获得所有项目,请显示您的代码以详细查看.
如果扫描项目的总数超过最大数据集大小限制1 MB,则扫描将停止,并将结果作为LastEvaluatedKey值返回给用户,以在后续操作中继续扫描.结果还包括超出限制的项目数.扫描可能导致没有符合过滤条件的表数据.
如果LastEvaluatedKey为空,则表示已处理结果的"最后一页",并且不再需要检索数据.
如果LastEvaluatedKey不为空,则不一定意味着结果集中有更多数据.知道何时到达结果集的结尾的唯一方法是LastEvaluatedKey为空.
这是获取所有结果的示例代码:
Map<String, AttributeValue> lastKeyEvaluated = null;
do {
ScanRequest sr = new ScanRequest()
.withTableName("tableName")
.withProjectionExpression("id")
.withExclusiveStartKey(lastKeyEvaluated);
ScanResult result = client.scan(sr);
for (Map<String, AttributeValue> item : result.getItems()) {
System.out.println(item.get("id").getS());
}
lastKeyEvaluated = result.getLastEvaluatedKey();
} while (lastKeyEvaluated != null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5686 次 |
| 最近记录: |