按数组中的值查询

时间:2013-12-30 14:24:39

标签: node.js amazon-dynamodb

我正在尝试使用Hash和Range键查询一个表,其中Range与数组中的值匹配。我正在使用aws-sdk npm模块。当我运行以下扫描时,我得到一个ValidationException。

client.scan({
    TableName: "MyTable",
    ScanFilter: {
        HashID: {
            AttributeValueList: [ { "S": "hash" } ],
            ComparisonOperator: "EQ",
        },
        RangeID: {
            AttributeValueList: [ {"SS": ["a", "b"]} ],
            ComparisonOperator: "IN"
        },
    },
}

错误回复:

{ [ValidationException: The attempted filter operation is not supported for the provided type]
message: 'The attempted filter operation is not supported for the provided type',
code: 'ValidationException',
name: 'ValidationException',
statusCode: 400,
retryable: false }

我该如何进行此查询?

1 个答案:

答案 0 :(得分:1)

来自API

  

IN:检查完全匹配。

     

AttributeValueList可以包含多个类型的AttributeValue   字符串,数字或二进制(不是一组)。的目标属性   比较必须具有相同的类型和精确值才能匹配。一个字符串   永远不会匹配字符串集。

这意味着您不能使用字符串集(SS)。您可能需要向AttributeValueList传递一些类型为S的AttributeValue对象。