有条件的动态扫描



我在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"

有人得到这个吗?

您可以尝试以下代码:我遇到了同样的问题。这里的结构意味着我们应该在将值传递给它的同时提供数据类型。

        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 表示字符串数据类型。

相关内容

  • 没有找到相关文章

最新更新