[英]Querying DynamoDB without PrimaryKey with Lambda
我想用運行python的lambda函數查詢DynamoDB。
DynamoDB表(名稱:Testing-Table):
我想查詢代碼中的表。 我希望lambda函數向我返回所有具有status屬性為active的user_id 。
table = dynamodb.Table('Testing-Table')
def lambda_handler(event, context):
response = table.query (
KeyConditionExpression=Key('status').eq('active')
)
for i in response['Items']:
print(i['user_id'],":",i['status'])
#return 'listing results'
我還添加了一個新索引: 索引
我嘗試創建一個以狀態為主鍵的表,並且我的代碼可以工作...但是主鍵必須是唯一的,因此當我嘗試在表中創建新項目時,無法再次將狀態設置為活動狀態 。
如有必要,我將向該問題添加更多信息。 我會感謝您的幫助。
- 編輯 - 只有 狀態為表的主鍵時,我的代碼才起作用。
我的問題是 :我可以使用狀態 PartitionKey而不是PrimaryKey used_id查詢我的DynamoDB表嗎? 最重要的是...如何完成?
我找到了想要的東西:
我必須像這樣在我的代碼中添加IndexName 。
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Testing-Table')
def lambda_handler(event, context):
response = table.query (
IndexName='status-index',
KeyConditionExpression=Key('status').eq('active')
)
for i in response['Items']:
print(i['user_id'],":",i['status'])
這是結果的圖像:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.