在Dynamodb中对SCAN操作进行排序

时间:2014-04-24 10:48:14

标签: php codeigniter amazon-dynamodb

如何在扫描操作中使用'token_no'命令

$dynamodb = new AmazonDynamoDB();
$query = array(
    'TableName' => $this->token_table,
    'AttributesToGet' => array('token_no'),
    'ScanFilter' => array(
        'queue_id' => array(
            'ComparisonOperator' => AmazonDynamoDB::CONDITION_EQUAL,
            'AttributeValueList' => array(
                array( AmazonDynamoDB::TYPE_STRING => (string)$queue_id)
            )
        ),
        'queue_date' => array(
            'ComparisonOperator' => AmazonDynamoDB::CONDITION_EQUAL,
            'AttributeValueList' => array(
                array( AmazonDynamoDB::TYPE_STRING => (string)$date)
            )
        )
    ),
);

$scan_response = $dynamodb->scan($query);

1 个答案:

答案 0 :(得分:3)

无法指定Scan操作的排序顺序。结果按HashKey的某些内部表示进行排序。因此,您无法知道项目将以何种顺序返回。

只有Query次操作才会按照定义的顺序返回项目。

  

查询结果始终按范围键排序。如果范围键的数据类型是Number,则以数字顺序返回结果;否则,结果按ASCII字符代码值的顺序返回。默认情况下,排序顺序为升序。要反转订单,请使用ScanIndexForward参数设置为false

     

来自AWS DynamoDB Developer Guide