如何在dynamo db中获取与特定键匹配的项

2024-10-02 06:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 我有dynamo db,user作为partition_key,时间作为sort_key
  • 我需要从dynamodb中提取user=abc@gmail.commessage=192.168.1.1

使用filterAttr,我可以使用key和value进行提取

table.scan(FilterExpression=Attr("message").eq("192.168.1.1"))

现在如何为特定用户提取


Tags: keycommessagedbvalue时间tabledynamodb
1条回答
网友
1楼 · 发布于 2024-10-02 06:21:05

在DynamoDB中获取数据有两种主要方法scanquery

当分区键已知时query操作可用于获取项。scan操作通过搜索整个数据库返回一个或多个项。正如您可能猜到的,query操作优于scan操作,因为它是一种性能更高的操作

在您的示例中,分区键是已知的。因此,您应该使用query操作来获取所需的数据。操作应该是这样的

table.query( {
        "TableName": "YOUR TABLE NAME HERE",
        "KeyConditionExpression": "#user = :user",
        "FilterExpression": "#message = :message",
        "ExpressionAttributeNames": {"#user":"user","#message":"message"},
        "ExpressionAttributeValues": {":user": {"S":"abc@gmail.com"},":message": {"S":"192.168.1.1"}}
    })

相关问题 更多 >

    热门问题