DynamoDBのクエリの書き方@boto3メモ。忘れがちなあなたに。
DynamoDBのテーブルの項目定義
パーティションキー:id
ソートキー :sid
属性1 :data1
で、
GSIとして↓を設定済み。
パーティションキー:id
ソートキー :data1
インデックス名 :id-data1-index
↑の状態でGSIのid-data1-indexを使ってqueryする
コード
import boto3
client = boto3.client('dynamodb')
paginator = client.get_paginator('query')
operation_parameters = {
'TableName': 'test-name',
# キーとして、id と data1 を指定する
'KeyConditionExpression': 'id = :id and begins_with(data1, :data1)',
'ExpressionAttributeValues': {
':id': {'S': 'id00'},
':data1': {'S': 'data1-00-000'},
},
# GSIを指定
'IndexName': 'id-data1-index',
}
page_iterator = paginator.paginate(**operation_parameters)
for page in page_iterator:
# do something
# del page['Items']
print(page)
pass