筛选动态模型语句



这是一个小查询,我只想获取事件名称='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 查询

最新更新