我想用运行python的lambda函数查询我的DynamoDB。
DynamoDB表(名称:Testing-Table):
我想在我的代码中查询表。我希望lambda函数能够将所有 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'
我还添加了一个新索引: Indexes
我尝试创建一个以状态作为主键的表格,我的代码工作...但是主键必须是唯一的,所以当我尝试在表格中创建一个新项目时,我无法设置状态再次有效。
如有必要,我会在问题中添加更多信息。我会感谢你的帮助。
- 的修改 - 如果状态是我的表的PrimaryKey,则我的代码只能 。
我的问题是:我可以使用状态 PartitionKey而不是PrimaryKey used_id 查询我的DynamoDB表吗?最重要的是......它是如何完成的?
答案 0 :(得分:0)
我找到了我要找的东西:
我必须在我的代码中添加 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'])
以下是结果图片: