2014-04-24 93 views
2

如何通過「token_no」在掃描操作使用順序排序掃描操作中Dynamodb

$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); 

回答

3

不能指定一個Scan操作的排序順序。結果按照HashKey的一些內部表示排序。所以你不知道物品將以什麼順序返回。

只有Query操作按照定義的順序返回項目。

查詢結果總是按範圍鍵排序。如果範圍鍵的數據類型是Number,則結果將按數字順序返回;否則,結果將按ASCII字符代碼值的順序返回。默認情況下,排序順序是升序。要顛倒訂單,請使用ScanIndexForward參數設置爲false

AWS DynamoDB Developer Guide

+0

如何查詢操作不是笨工作。 –