Boto3 扫描未扫描整个 table
Boto3 scan not scanning whole table
我想通过以下扫描从 DynamoDB table 中获取对象列表
video_list = video_table.scan(
FilterExpression="attribute_not_exists(title)",
)
但是我收到了这样的东西
{'Items': [], 'Count': 0, 'ScannedCount': 948 ...}
通过从 DynamoDB 控制台执行完全相同的扫描,我得到了很多结果。
我已正确连接到 table,因为我之前收到过结果,最近才停止接收。
脚本在 Lambda 函数中,使用无服务器框架部署。
Count
和 ScannedCount
表示 DynamoDB 读取了 948 个项目,但其中 none 个项目与 attribute_not_exists(title)
匹配。我可以想到为什么会发生这种情况的两种可能性:
也许您的查询中有错字 - 也许属性名称 title
拼错了?也许您指的是 attribute_exists
,而不是 attribute_not_exists
?
一如既往,Scan
操作被分页。此操作仅读取一页,共 948 个项目,并且 none 个匹配的特定项目。这 948 个项目是整个数据库,还是只是更大数量的前 948 个项目?如果是后者,完全有可能(但我不知道你的情况有多大可能......)由于纯粹的运气,前948项都不匹配,你必须继续阅读下一页才能得到任何比赛。
我想通过以下扫描从 DynamoDB table 中获取对象列表
video_list = video_table.scan(
FilterExpression="attribute_not_exists(title)",
)
但是我收到了这样的东西
{'Items': [], 'Count': 0, 'ScannedCount': 948 ...}
通过从 DynamoDB 控制台执行完全相同的扫描,我得到了很多结果。
我已正确连接到 table,因为我之前收到过结果,最近才停止接收。
脚本在 Lambda 函数中,使用无服务器框架部署。
Count
和 ScannedCount
表示 DynamoDB 读取了 948 个项目,但其中 none 个项目与 attribute_not_exists(title)
匹配。我可以想到为什么会发生这种情况的两种可能性:
也许您的查询中有错字 - 也许属性名称
title
拼错了?也许您指的是attribute_exists
,而不是attribute_not_exists
?一如既往,
Scan
操作被分页。此操作仅读取一页,共 948 个项目,并且 none 个匹配的特定项目。这 948 个项目是整个数据库,还是只是更大数量的前 948 个项目?如果是后者,完全有可能(但我不知道你的情况有多大可能......)由于纯粹的运气,前948项都不匹配,你必须继续阅读下一页才能得到任何比赛。