如何解决使用Ruby SDK进行DynamoDB查询
我真的很难使查询正常工作。我正在尝试使所有主键(“关键字”)等于“堆肥汤匙”的物品。
这是我的物品之一
{
"keyword": "compost spoons","created_at": "2020-08-12T11:31:21+00:00"
}
这是我查询中的参数:
params = {
table_name: "servings",select: "ALL_ATTRIBUTES",return_consumed_capacity: "INDEXES",key_condition_expression: "keyword = :keyword_val",expression_attribute_values: {
"keyword_val" => "compost spoon"
}
}
通过的错误:
"ExpressionAttributeValues contains invalid key: Syntax error; key: \"keyword_val\""
什么是参数才能使查询正常工作?
架构:
{
"AttributeDefinitions": [
{
"AttributeName": "keyword","AttributeType": "S"
},{
"AttributeName": "created_at","AttributeType": "S"
}
],"TableName": "servings","KeySchema": [
{
"AttributeName": "keyword","KeyType": "HASH"
},"KeyType": "RANGE"
}
],"TableStatus": "ACTIVE","CreationDateTime": "2020-08-14T10:26:55.528Z","ProvisionedThroughput": {
"LastIncreaseDateTime": "1970-01-01T00:00:00.000Z","LastDecreaseDateTime": "1970-01-01T00:00:00.000Z","NumberOfDecreasesToday": 0,"ReadCapacityUnits": 5,"WriteCapacityUnits": 5
},"TableSizeBytes": 168,"ItemCount": 3,"TableArn": "arn:aws:dynamodb:ddblocal:000000000000:table/servings"
}
解决方法
好像您在keyword_val
中expression_attribute_values
前面缺少一个冒号。我相信应该是:
params = {
table_name: "servings",select: "ALL_ATTRIBUTES",return_consumed_capacity: "INDEXES",key_condition_expression: "keyword = :keyword_val",expression_attribute_values: {
":keyword_val" => "compost spoon". // <---- CHANGE IS HERE!!
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。