JavaScript SDK
Я пытаюсь использовать ComparisonOperator "IN" в ключевых условиях моего запроса
var params = {
TableName: 'xxxxx',
KeyConditions: {
'uuid': {
ComparisonOperator: 'IN', /* required */
AttributeValueList: [
"abc", "def", "ghi"
]
} }
};
var dynamoQueryPromise = dynamoClient.query(params).promise();
...
Но я получил ошибку:
ValidationException: Попытка условного ограничения не является индексируемой операцией
не доступна ли операция "IN"?
Любой совет приветствуется.
**** ОБНОВЛЕНИЕ *****
Я последовал потенциальному предложению из дублированного вопроса ссылка
Было предложено использовать операцию «IN» в FilterExpression, а не KeyConditionExpression
Я обновил свой код:
создать индекс 'my-index' с PK = 'staff'
var keyExpr = "#staff = :staff";
var filterExpr = " #phone IN :phone"
var attributeNames = new Object();
attributeNames["#staff"] = 'staff';
attributeNames["#phone"] = 'phone';
var attributeValues = new Object();
attributeValues[":staff"] = 'A1';
attributeValues[":phone"] = ['0012341', '12342134', '214234124'];
var params = {
TableName: 'xxxxxx',
IndexName: 'my-index',
KeyConditionExpression: keyExpr,
FilterExpression: filterExpr,
ExpressionAttributeNames: attributeNames,
ExpressionAttributeValues: attributeValues
}
...
Результаты: ошибка
ValidationException: недопустимое FilterExpression: синтаксическая ошибка;токен: ": телефон", рядом: "IN: телефон"