Dynamodb扫描条件

时间:2016-07-13 09:32:53

标签: amazon-dynamodb

我在dynamodb中有一个像这样的表:

TableName : "User",
KeySchema: [       
    { AttributeName: "id", KeyType: "HASH"}  //Partition key
],
AttributeDefinitions: [       
    { AttributeName: "id", AttributeType: "S" }
],
ProvisionedThroughput: {       
    ReadCapacityUnits: 10, 
    WriteCapacityUnits: 10
}

现在我正在尝试搜索用户:

var params = {
    TableName: 'User',
    FilterExpression: 'contains(id, :value)',
    ExpressionAttributeValues: {
    ':value': 'ronaldo'
    }
};

dynamodb.scan(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

这很简单,但我遇到了很多错误:

"message": "Expected params.ExpressionAttributeValues['value'] to be a structure"

有人有这个吗?

1 个答案:

答案 0 :(得分:3)

您可以尝试以下代码: 我遇到了同样的问题。 这里结构含义我们应该提供DataType ,同时将值传递给它。

        var params = {
            TableName: 'User',
            FilterExpression: 'contains(id, :value)',
            ExpressionAttributeValues: {
                ':value': {
                    'S': 'ronaldo'
                }
            }
        };

        dynamodb.scan(params, function(err, data) {
            if (err) ppJson(err); // an error occurred
            else ppJson(data); // successful response
        });

其中 S表示字符串数据类型。