如何将此sql查询Select name , college_id,phone_number from users where college_id =2 limit 100
转换为dyanmodb
I tried below code
$iterator = $dynamo->query(array(
'TableName' => 'users',
'IndexName' => 'college_id-phone_number-index',
'ScanIndexForward' => false,
'KeyConditions' => array(
'college_id' => array(
'AttributeValueList' => array(
array('S' => (string)$collegeId )
),
'ComparisonOperator' => 'EQ'
),
'phone_number' => array(
'AttributeValueList' => array(
array('S' => (string)$phoneNumber)
),
'ComparisonOperator' => 'EQ'
)
),
**'Limit' => 100,**
)
);
我发现Limit = 100
限制处理的项目总数比返回的匹配项目总数。
请帮帮我。
在Amazon DynamoDB中没有对应的SQL
LIMIT
命令。您应该不断遍历分页结果集,直到达到所需的记录数为止。
更新:
哦!是一个极限参数。来自QUERY
文档:
Limit:要返回的最大项数(不一定是匹配项的数量)。如果DynamoDB在查询表时处理的条目数量达到限制,它将停止查询并返回到该点的匹配值,并在后续操作中应用LastEvaluatedKey以继续查询。此外,如果在DynamoDB达到此限制之前结果集大小超过1MB,它将停止查询并返回匹配的值,并在后续操作中应用LastEvaluatedKey以继续查询。
因此,一直分页1MB的结果集,直到达到限制。