是否可以在没有分页的情况下获取dynamodb扫描结果的记录计数?

时间:2018-11-23 13:19:02

标签: php amazon-dynamodb phalcon

我的dynamodb表中有一组记录。我想根据特定条件没有分页来获取记录数。 这是我用于获取数据的代码:

$db = $this->getDi()->get('dynamodb');
$dynamodb = $db->createDynamoDb();
$FilterExpression='tenant_id = :tid';
$ExpressionAttributeValuesArr=array(':tid'=>array('S'=>'16008d5bXYZ'), ':mod'=>array('S'=>"leads"));
scan_request=array(
                    'TableName' => 'xxxx',
                    'Count'     => true,
                    'FilterExpression' => $FilterExpression.' AND #module = :mod',
                    'ExpressionAttributeNames' => array('#module' => 'module'),
                    'ExpressionAttributeValues' => $ExpressionAttributeValuesArr,
                );
$scan_response = $dynamodb->scan($scan_request);

此代码返回记录列表和计数,但不返回整个集合或整个计数,因为我可以看到响应中返回了LastEvaluatedKey字段。我需要为此扫描返回整个记录集的计数。我怎样才能做到这一点 ?即使没有分页,这是否有可能?

1 个答案:

答案 0 :(得分:1)

恐怕不是,COUNT是一个较晚的请求-即发电机读取(并为此向您收取费用),表,然后应用过滤器,然后将其减少到计数。

这就是为什么要分页的原因,因为count运算符只会“看到”页面的最大长度。

如果您不需要以编程方式/准确方式执行此操作,我将向您指出AWS在DynamoDB控制台中显示的“估计数量”。