2017-02-21 7 views
2

Я написал код python, я хочу запросить данные dynamoDB с помощью ключа сортировки. Я помню, что я могу использовать последующие коды успешные:dynamodb как запросить ключ сортировки только?

table.query(KeyConditionExpression=Key('event_status').eq(event_status)) 

Моей структуру таблицы столбец

primary key:event_id 
sort key: event_status 

ответ

2

API-интерфейс сканирования следует использовать, если вы хотите получить данные из DynamoDB без использования атрибута Hash Key стоимость.

Пример: -

fe = Attr('event_status').eq("new"); 

response = table.scan(
     FilterExpression=fe   
    ) 

for i in response['Items']: 

print(json.dumps(i, cls=DecimalEncoder)) 

while 'LastEvaluatedKey' in response: 
    response = table.scan(  
     FilterExpression=fe,   
     ExclusiveStartKey=response['LastEvaluatedKey'] 
     ) 

    for i in response['Items']: 
     print(json.dumps(i, cls=DecimalEncoder)) 
+2

Обратите внимание, что сканирование не то же самое, как запросы. Вы будете выполнять итерацию по всем значениям, поэтому она намного менее эффективна, чем запрос. Если вам действительно нужно эффективно запрашивать '' event_status', вам следует подумать о создании GSI для этого поля. – garnaat

Смежные вопросы