PynamoDB - 查询或计算 table 上的所有项目

PynamoDB - Query or count all items on table

使用 PynamoDB,还有其他人在尝试计算 table 上的所有项目时遇到问题吗?我有一个模型,我从中创建了一个 table。 我正在尝试使用 ModelName.count() 但我一直得到 0,即使我在那里有一些项目。 将特定密钥发送到 ModelName.count(key) 时,我得到了正确的结果,但我想计算所有项目。

我尝试查询所有项目并计数,但似乎我必须设置主键才能查询,因此此解决方法不相关。

如果有人以前处理过这个问题,我很乐意在这里提供帮助, 谢谢!

为了在不扫描整个table的情况下计算table中的所有项目,pynamodb将不得不使用DescribeTable操作,returns ItemCount 响应。但是,DynamoDB documentation 解释说:

DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

所以这可能是您的问题。请尝试等待六个小时,看看计数是否得到更新。

关于不带键查询所有项目 - 你可以这样做,但它不称为 Query,它称为 Scan。而且会非常昂贵(即使你只是想数数,你基本上也会为读取数据库的全部内容付费)。