对Dynamodb中的SCAN操作进行排序


sort SCAN operation in 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);

您不能为Scan操作指定排序顺序。结果按照HashKey的一些内部表示进行排序。因此,您无法知道这些物品将按哪个顺序返回。

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

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

来自AWS DynamoDB开发者指南