【问题标题】:DynamoDB: ComparisonOperator "IN" doesn't workDynamoDB:ComparisonOperator“IN”不起作用
【发布时间】:2018-06-06 12:19:39
【问题描述】:

JavaScript SDK

我正在尝试在我的查询的 KeyConditions 中使用 ComparisonOperator "IN"

var params = {
            TableName: 'xxxxx',
            KeyConditions: {
                'uuid': {
                  ComparisonOperator: 'IN',  /* required */
                  AttributeValueList: [
                    "abc", "def", "ghi" 
                  ]
                }              }

        };
var dynamoQueryPromise = dynamoClient.query(params).promise();
...

但我收到错误:

ValidationException:尝试的条件约束不是 可索引操作

“IN”操作不可用吗?

感谢任何建议。

****更新*****

我遵循了来自重复问题link的潜在建议

建议在FilterExpression中使用“IN”操作而不是KeyConditionExpression

我更新了我的代码:

使用 PK = 'staff' 创建索引'my-index'

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:语法错误;令牌: ":phone", 附近: "IN:phone"

【问题讨论】:

  • 我看了帖子,建议在FilterExpression中使用“IN”,我试过了,“IN”还是不行。 AWS SDK 文档未更新且信息不正确,因此很沮丧...
  • 不,上面写着IN isn't supported.
  • 嗨 Liam,感谢您的了解,那么有什么方法可以使用“IN”过滤 DynamoDB 查询吗?或亚马逊从其 SDK 中删除了此操作
  • 不确定,不是我所在的地区,恐怕我刚刚看到了副本。如果您想问这个问题,我建议您编辑您的问题并包含指向潜在重复项的链接

标签: javascript amazon-web-services amazon-dynamodb aws-sdk aws-sdk-js


【解决方案1】:

根据发布的信息,无法确定“电话”是否是您的排序键。但是,索引键不支持 DynamoDB 查询运算符 IN。

对于非索引键,请确保您的 AttributeNames 列表和 AttributeValues 声明正确。

在此处添加链接供您参考:Dynamo DB filter expression using IN operator with numeric array variable

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多