首页 > 解决方案 > 使用 python 从 DynamoDB 查询所有行

问题描述

就我而言,关于如何检索 DynamoDB 的所有行的信息很少。

我用table.scan()了 但是当使用这种方法时你有一个限制,所以你不会得到所有的项目。

我试过table.query()但它说:Either the KeyConditions or KeyConditionExpression parameter must be specified in the request.

非常感谢

标签: pythonamazon-dynamodb

解决方案


唯一的方法是使用 table.scan() 但您需要添加一致的读取。

Scan 在访问表中的数据时使用最终一致性读取;因此,结果集可能不包括在操作开始之前对表中数据的更改。如果您需要数据的一致副本,则在扫描开始时,您可以将 ConsistentRead 参数设置为 true 。这是文档的链接。 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Client.scan

如果 LastEvaluatedKey 为空,则结果的“最后一页”已被处理,没有更多数据可检索。

如果 LastEvaluatedKey 不为空,并不一定意味着结果集中有更多的数据。知道何时到达结果集末尾的唯一方法是 LastEvaluatedKey 为空。


推荐阅读