我的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
字段。我需要为此扫描返回整个记录集的计数。我怎样才能做到这一点 ?即使没有分页,这是否有可能?
答案 0 :(得分:1)
恐怕不是,COUNT
是一个较晚的请求-即发电机读取(并为此向您收取费用),表,然后应用过滤器,然后将其减少到计数。
这就是为什么要分页的原因,因为count运算符只会“看到”页面的最大长度。
如果您不需要以编程方式/准确方式执行此操作,我将向您指出AWS在DynamoDB控制台中显示的“估计数量”。