Невозможно использовать оператор IN в DynamoDb Query - PullRequest
0 голосов
/ 27 марта 2019

Проблема в том, что я получаю ошибку (выражение фильтра может содержать только атрибуты не первичного ключа: атрибут первичного ключа: имя). арендатор - это мой основной ключ раздела, а имя - мой основной ключ сортировки.

Мне нужно написать что-то эквивалентное в динамо db: Выберите * из проектов, в которых tenant = 'testProject' и имя в ('John', 'Dave').

query = {
    TableName: 'projects',
    ExpressionAttributeNames: {
        '#tenant': 'tenant',
        '#name' : 'name'
    },
    ExpressionAttributeValues: {
        ":tenant": 'testProject',
        ":user1" : "John",
        ":user2" : "Dave"
    },
    KeyConditionExpression: '#tenant = :tenant',
    FilterExpression: '#name IN (:user1,:user2)'
};

1 Ответ

0 голосов
/ 01 апреля 2019

На день, когда я пишу это, вы не можете использовать IN в своем выражении условия ключа и не можете включать атрибут ключа в выражение фильтра.

Способ делать то, что вы 'Вы хотите выполнить запрос BatchGetItem, который позволяет указать полный первичный ключ для нескольких элементов.

...