Запросить все элементы по ключу раздела в Dynamo, используя boto3 - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть таблица в DynamoDB с ключами секционирования и сортировки.Я хочу получить все элементы, имеющие заданный ключ раздела, независимо от ключа сортировки.

Как мне это сделать?

1 Ответ

0 голосов
/ 26 декабря 2018

Следующий подход будет работать как для таблиц только с ключами секционирования, так и для таблиц с ключами секционирования и сортировки:

from boto3 import resource
from boto3.dynamodb.conditions import Key


dynamodb_resource = resource('dynamodb')

def query_table(table_name, key=None, value=None):
    table = dynamodb_resource.Table(table_name)

    if key is not None and value is not None:
        filtering_exp = Key(key).eq(value)
        return table.query(KeyConditionExpression=filtering_exp)

    raise ValueError('Parameters missing or invalid')

if __name__ == '__main__':
    resp = query_table(
        table_name='my-table', 
        key='key-name', 
        value='match-me'
    )
    items = resp.get('Items')
    print(len(items))

Примечание. Первоначально я нашел полезный ответ для этого здесь .Кредит, где кредит должен!

...