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