繁体   English   中英

如何获取与特定键匹配的发电机数据库中的项目

[英]How to get the item in the dynamo db which match particular key

  • 我有发电机数据库, user作为partition_key ,时间作为sort_key
  • 我需要从 dynamodb 中提取user=abc@gmail.commessage=192.168.1.1

使用过滤器Attr ,我可以用键和值提取

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

现在如何为特定用户提取?

在 DynamoDB 中获取数据有两种主要方法; scan query

当分区键已知时, 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"}}
    })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM