代码之家  ›  专栏  ›  技术社区  ›  Pro-Web

dynamodb语句上的过滤器

  •  0
  • Pro-Web  · 技术社区  · 7 年前

    这是一个小查询,我只想获取事件名为“newevent”的记录

    如何在文档中应用此筛选器所有查询都是这样的组合键

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

    但在我看来,这不是复合键。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Madhukar Mohanraju    7 年前

    您可以将dynamodb scan api与 筛选器表达式 . 请参阅以下示例:

    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软件包:

    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))
    

    上面提供的所有示例将返回所有属性。如果只需要特定属性,请使用 --投影表达式 (在awscli中)或 投影表达式 (在sdk中)。

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

    DynamoDB Scan API document

    Working with DynamoDB Queries