过滤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语句的主要内容,如果未能解决你的问题,请参考以下文章