Boto3-我可以使用batch_get_item获得其排序键以变量开头的项目吗?

时间:2019-01-28 08:08:41

标签: python amazon-dynamodb boto3

我正在使用boto3处理AWS Dynamo DB。

我想查询一次,以获取两个分区键中排序键开头的项目。

我已经阅读了很多次文档,但是这些示例都是关于获取与完全匹配分区键和排序键完全相同的项目的。

我知道一个分区键可以获取其排序键以ABC_开头的项目。

response = table.query(
    KeyConditionExpression=Key('partition_key').eq(partition_key1) & 
                           Key('sort_key').begins_with('ABC_')
)
response2 = table.query(
    KeyConditionExpression=Key('partition_key').eq(partition_key2) & 
                           Key('sort_key').begins_with('ABC_')
)

但是是否还可以查询一次以从两个分区键中获取多个项目,这些分区键的排序键以ABC_开头?

response = dynamodb.batch_get_item(
    RequestItems={
        'test_table': {
            'Keys': [
                {
                    'partition_key': partition_key1,
                    'sort_key': 'ABC_1',  # begins with 'ABC_'
                },
                {
                    'partition_key': partition_key2,
                    'sort_key': 'ABC_2',  # begins with 'ABC_'
                },
            ],
        }
    }
)

1 个答案:

答案 0 :(得分:1)

否,您将需要使用两个查询。如果需要更快的响应,请并行执行它们。