[英]PHP AWS DynamoDB: Limit the Number of Total Query Results Using an Iterator
我试图将迭代器返回的结果总数限制为3.不是每次迭代的结果数。 我希望这个号码充满活力。 但是,我找不到任何真正的答案来实现这一点,AWS提供的文档没有任何帮助。 将Limit包含在具有表名和键的数组中不会限制结果。 我也将它放在自己独立的阵列中,但这也不起作用。 以下是我尝试过但我无法让它工作。 任何帮助将不胜感激。
$iterator = $dbh->getIterator('Query', array(
'TableName' => 'raw',
'KeyConditions' => array(
'deviceID' => array(
'AttributeValueList' => array(
array('S' => $deviceID)
),
'ComparisonOperator' => 'EQ'
)
),
'ScanIndexForward' => false // true = ascending, false = descending
),
array(
'Limit' => 3
)
);
然后将结果数据放入数组中。 我不知道我是否需要在这里做些不同的事情?
foreach ($iterator as $item) {
array_push($resultArray, $item);
}
您可能已经尝试过这种方式,但是请尝试使用小写“限制”的代码。
$iterator = $dbh->getIterator('Query', array(
'TableName' => 'raw',
'KeyConditions' => array(
'deviceID' => array(
'AttributeValueList' => array(
array('S' => $deviceID)
),
'ComparisonOperator' => 'EQ'
)
),
'ScanIndexForward' => false // true = ascending, false = descending
),
array(
'limit' => 3
)
);
您也可以尝试通过以下方式进行限制。
foreach (new LimitIterator($iterator, 0, 3) as $item) {
array_push($resultArray, $item);
}
尝试这个。 它在params中设置一次Limit,这应该限制查询结果,然后一次在params之外,这应该限制迭代器的大小
$iterator = $dbh->getIterator('Query', array(
'TableName' => 'raw',
'KeyConditions' => array(
'deviceID' => array(
'AttributeValueList' => array(
array('S' => $deviceID)
),
'ComparisonOperator' => 'EQ'
)
),
'ScanIndexForward' => false, // true = ascending, false = descending
'Limit' => 3
),
array(
'limit' => 3,
'page_size' => 3
)
);
确保参数之外的参数是“限制”(小写),里面的参数是“限制”(以大写字母开头)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.