过滤dynamodb语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤dynamodb语句相关的知识,希望对你有一定的参考价值。

它是一个小查询我只想获取那些事件名称为''newevent'的记录

如何在文档中应用此过滤器所有查询都是这样的复合键

face = dynamodb.get_item(
                                TableName='athlete_collection',
                                Key={'RekognitionId': {'S': match['Face']['FaceId']}
                                    ,'EventName': {'S' : 'celeb'}
                                     }
                            )

但就我而言,它不是复合键。

答案

您可以将Dynamodb扫描API与FilterExpression一起使用。请参阅以下示例:

AWSCLI:

aws dynamodb scan --table-name sample --filter-expression "eventname = :val" --expression-attribute-values '{":val":{"S":"newevent"}}' --region us-west-1

输出:

{
    "Count": 1,
    "Items": [
        {
            "eventname": {
                "S": "myname"
            },
            "id": {
                "N": "4"
            },
            "value": {
                "S": "value4"
            }
        }
    ],
    "ScannedCount": 5,
    "ConsumedCapacity": null
}

Boto3 SDK:

import boto3
import json

client = boto3.client('dynamodb', region_name='us-west-1')

response = client.scan(
    TableName="sample",
    FilterExpression="eventname = :val",
    ExpressionAttributeValues={
        ":val":{
            "S":"myname"
        }
    }
)
print(json.dumps(response, indent=True))

上面提供的所有示例都将返回所有属性。如果只需要特定属性,请使用--projection-expression(在aws cli中)或ProjectionExpression(在SDK中)。

我建议您浏览以下文档链接以获得更清晰和自定义:

DynamoDB Scan API document

Working with DynamoDB Queries

以上是关于过滤dynamodb语句的主要内容,如果未能解决你的问题,请参考以下文章

Dynamodb 查询过滤器 Node.js

DynamoDB-过滤表达式

用于过滤用例的 AppSync DynamoDB 解析器

DynamoDB 流 和 AWS Lambda 触发器

在使用 Java 的 DynamoDB 扫描中使用包含过滤器

用于过滤用例的AppSync DynamoDB解析器