2017-02-21 38 views
2

我寫了一些Python代碼,我想通過排序鍵查詢dynamoDB數據。 我記得我可以用後續的代碼的成功:dynamodb如何僅通過排序鍵進行查詢?

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

我的表結構列

primary key:event_id 
sort key: event_status 

回答

2

,如果你想獲得來自DynamoDB的數據,而無需使用散列鍵屬性掃描API應該使用值。

實施例: -

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

相關問題