2016-09-28 3 views
0

Я хочу запросить набор свойств в соответствии с первым ключом. , например. Я хочу запросить две записи, используя primary_key1 и primary_key2. я использовал KeyConditionExpression как этот KeyConditionExpression: "primary_key in (:key1, key2)" ExpressionAttributeValues: { ... } dynamodb, как использовать первичный ключ `in` предложение в операции запроса?

но есть ошибка в предложении, используя в KeyConditionExpression.

Ошибка я получаю:

Синтаксическая ошибка при использовании in предложение в KeyConditionExpression

Как я могу это исправить?

+0

Какая ошибка вы получаете? –

+0

Сообщается о недействительном операторе, используемом в KeyConditionExpression: IN' – elsonwx

ответ

1

KeyConditions не поддерживает IN оператор. Кроме того, он не поддерживает оператора OR.

Однако он поддерживает оператор AND для фильтрации данных с помощью ключа хеша и ключа сортировки.

Для KeyConditions только следующие операторы сравнения поддерживаются:

EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN

KeyConditionExpression - (String) Условие, определяющее значение (0) значений для элементов, которые будут получены при выполнении запроса.

Условие должно выполнить проверку равенства на одном ключе раздела . Условие также может выполнить один из нескольких сравнительных тестов по одному значению ключа сортировки. Запрос может использовать KeyConditionExpression для извлекать один элемент с заданным значением ключа раздела и значением ключа сортировки или несколькими элементами с одинаковым значением ключа раздела, но разными значениями ключей сортировки .

сканирование, а не запрос с использованием фильтра. Однако имейте в виду, что сканирование является дорогостоящей операцией в DynamoDB, которая не может быть решением, которое вы ищете.

var params = { 
     TableName: "Movies",  
     FilterExpression: "title IN (:titlevalue1, :titlevalue2)", 
     ExpressionAttributeValues: { 
      ":titlevalue1": "The Big New Movie 2012", 
      ":titlevalue2": "The Big New Movie", 

     } 
    }; 

Другой вариант - запросить базу данных несколько раз с использованием разных ключей.

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