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
。而且会非常昂贵(即使你只是想数数,你基本上也会为读取数据库的全部内容付费)。
使用 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
。而且会非常昂贵(即使你只是想数数,你基本上也会为读取数据库的全部内容付费)。