Amazon DynamoDBではHash KeyとRange Keyをテーブルに設定することができますが、この場合、queryを使用して指定したHash Keyに対してRange Keyの値の範囲を指定して検索することができます。
PHPを指定してqueryを使用するプログラムは次の通りです。テーブルtest_rをあらかじめ作成してから実行します。test_rはid(Hash Key)とdate(Range Key)を設定しています。
(AWS SDK for PHP version 2を使用)
<?php require_once 'AWSSDKforPHP/aws.phar'; use Aws\Common\Aws; $aws = Aws::factory('/[入力する]/config.php'); $ddb = $aws->get('dynamodb'); date_default_timezone_set("Asia/Tokyo"); $dateString = date("Y-m-d H:i:s", strtotime("now")); $put_result = $ddb->putItem(array( 'TableName' => 'test_r', 'Item' => array( 'id' => array( 'S' => 'test_data'), 'date' => array ('S' => $dateString), 'text' => array('S' => 'this is test.') ) ) ); $query_result = $ddb->query(array( 'TableName' => 'test_r', 'HashKeyValue' => array( 'S' => 'test_data' ), 'RangeKeyCondition' => array( 'ComparisonOperator' => 'LT', 'AttributeValueList' => array( array( 'S' => $dateString ) ) ) ) ); print_r($query_result["Items"]); echo 'OK'; ?>
プログラムを書くにはAmazonの説明(http://docs.amazonwebservices.com/ja_jp/amazondynamodb/latest/developerguide/GettingStartedPHPQuery.html)を参考にしています。
関連するページ: