我在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"
有人有这个吗?
答案 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表示字符串数据类型。