【问题标题】:Boto3 scan not scanning whole tableBoto3 扫描行为异常
【发布时间】:2021-03-25 22:02:08
【问题描述】:

我想通过以下扫描从 DynamoDB 表中获取对象列表

video_list = video_table.scan(
        FilterExpression="attribute_not_exists(title)",
)

但我收到这样的东西

{'Items': [], 'Count': 0, 'ScannedCount': 948 ...}

通过从 DynamoDB 控制台执行完全相同的扫描,我得到了很多结果。

我已正确连接到表,因为我之前收到过结果,但最近才停止接收。

脚本位于 Lambda 函数中,使用无服务器框架部署。

【问题讨论】:

    标签: python aws-lambda amazon-dynamodb boto3 serverless


    【解决方案1】:

    CountScannedCount 表示 DynamoDB 读取了 948 个项目,但这些项目中没有一个与 attribute_not_exists(title) 匹配。我可以想到为什么会发生这种情况的两种可能性:

    1. 也许您的查询中有错字 - 属性名称 title 可能拼写错误?也许你的意思是attribute_exists,而不是attribute_not_exists

    2. 与往常一样,Scan 操作是分页的。此操作仅读取一页,共 948 个项目,并且没有一个匹配的特定项目。这 948 个项目是整个数据库,还是只是更大数字中的前 948 个?如果是后者,完全有可能(但我不知道你的情况有多大可能......)由于纯粹的运气,前948个项目都不匹配,您必须继续阅读下一页才能获得任何匹配项。

    【讨论】:

    • 确实是第二个问题,需要用LastEvaluatedKey,谢谢。
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 2018-10-20
    • 2015-05-07
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多