PHP AWS DynamoDB:使用迭代器限制总查询结果数

app*_*her 5 php amazon-web-services amazon-dynamodb

我试图将迭代器返回的结果总数限制为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 
    )
);
Run Code Online (Sandbox Code Playgroud)

然后将结果数据放入数组中.我不知道我是否需要在这里做些不同的事情?

foreach ($iterator as $item) {
     array_push($resultArray, $item);
}
Run Code Online (Sandbox Code Playgroud)

F_S*_*O_K 0

尝试这个。它在参数内部设置一次 Limit,这应该限制查询结果,然后在参数外部设置一次 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
        'Limit' => 3 
    ),
    array(
        'limit' => 3,
        'page_size' => 3 
    )
);
Run Code Online (Sandbox Code Playgroud)

确保参数外部的参数是“limit”(小写),内部的参数是“Limit”(以大写字母开头)。