这是一个小查询,我只想获取事件名称='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(在 awscli 中(或ProjectionExpression(在 SDK 中(。
我建议您浏览以下文档链接,以获得更清晰和自定义的内容:
DynamoDB 扫描 API 文档
使用 DynamoDB 查询