2016-09-20 6 views
1

У меня есть таблица с 2 атрибутами id (строка, первичный ключ), значение (строка). Когда я пытаюсь выполнить KeyConditionExpression, он выдает Условие ключа запроса не поддерживается.Как использовать метод begin_with для первичного ключа в DynamoDB?

KeyConditionExpression: "begins_with(ID, :tagIDValue)" 
         or 
KeyConditionExpression: "contains(ID, :tagIDValue)" 

От this ссылки, которую я узнал, мы можем использовать только операции EQ на главном ключе. Как я могу достичь этого

Решение: ===================================== ================

Мне нужно использовать start_with или содержит фильтр. Итак, я пошел со следующим подходом.

Атрибуты таблицы: PK (partion_key, string), идентификатор (сортировка ключа, строка), значение (строка).

Теперь мой первичный ключ оформлен на основе ПК, ID

PK будет иметь постоянное значение для всех строк. поэтому KeyConditionExpression будет как.

KeyConditionExpression: "PL = :pk and begins_with(ID, :tagIDValue)" 

Примечание: Но все-таки содержит не работает с KeyConditionExpression. Я думаю, что он был удален из KeyConditionExpression

ответ

1

Вы можете использовать begins_with и contains только с ключом диапазона после указания условия эквалайзера для первичного ключа.

Чтобы использовать эквалайзер с первичным ключом вы можете сделать

KeyConditionExpression: "ID = :tagIDValue" 
+0

Спасибо за предложение, я упаковал первичный ключ с ключом partion и клавишами диапазона или ключом сортировкой – Praveenkumar

Смежные вопросы