Amazon dynamodb Dynamodb查询中意外的键KeyConditionExpression
我试图查询一个名为“user_path_summary”的表,查找一个值,该值等于我的hashkey“username”,也等于我的全局二级索引hashkey“full_path”。我希望得到一个属性,“文章阅读”。我使用的参数是:Amazon dynamodb Dynamodb查询中意外的键KeyConditionExpression,amazon-dynamodb,Amazon Dynamodb,我试图查询一个名为“user_path_summary”的表,查找一个值,该值等于我的hashkey“username”,也等于我的全局二级索引hashkey“full_path”。我希望得到一个属性,“文章阅读”。我使用的参数是: var params = { "TableName": "user_path_summary", "IndexName": "full_path_index", "KeyConditionExpression": "f
var params = {
"TableName": "user_path_summary",
"IndexName": "full_path_index",
"KeyConditionExpression": "full_path = :v_full_path AND username = v:username",
"ExpressionAttributeValues": {
":v_username": {"S" : username},
":v_full_path": {"S": full_path}
},
"ProjectionExpression": "articles_read",
"ScanIndexForward": false
};
我得到以下错误
{ [MultipleValidationErrors: There were 2 validation errors:
* MissingRequiredParameter: Missing required key 'KeyConditions' in params
* UnexpectedParameter: Unexpected key 'KeyConditionExpression' found in params]
message: 'There were 2 validation errors:\n* MissingRequiredParameter: Missing required key \'KeyConditions\' in params\n* UnexpectedParameter: Unexpected key \'KeyConditionExpression\' found in params',
code: 'MultipleValidationErrors',
errors:
[ { [MissingRequiredParameter: Missing required key 'KeyConditions' in params]
message: 'Missing required key \'KeyConditions\' in params',
code: 'MissingRequiredParameter',
time: Sat Aug 01 2015 14:54:52 GMT-0400 (EDT) },
{ [UnexpectedParameter: Unexpected key 'KeyConditionExpression' found in params]
message: 'Unexpected key \'KeyConditionExpression\' found in params',
code: 'UnexpectedParameter',
time: Sat Aug 01 2015 14:54:52 GMT-0400 (EDT) } ],
time: Sat Aug 01 2015 14:54:52 GMT-0400 (EDT) }
我感到困惑,因为错误与缺少的参数“KeyConditions”有关,该参数在中被标识为遗留参数,也与api引用说要使用而不是“KeyConditions”的意外参数“KeyConditionExpression”有关
有没有我错过的场景?我的语法在什么地方出错了。请让我知道,我显然错过了什么 我认为还需要注意的是,我正在使用通过npm下载的aws sdk通过NodeJ运行请求。(npm安装aws sdk)您的KeyConditionExpression中有
v:username
,ExpressionAttribute值中有:v_full_path
。我想你会因为没有正确的替换数量而得到不同的验证错误。是否有输入错误?您使用的SDK是否是最新版本的DynamoDB API?不久前,“KeyConditionExpression”参数替换了“KeyConditions”,但如果您使用的是SDK的非常旧版本,则可能会解释此错误。感谢您的帮助。事实证明我有一个过时的aws sdk。我认为还需要注意的是,我正在使用通过npm下载的aws sdk通过nodejs运行我的请求。(npm安装aws sdk)您的KeyConditionExpression中有v:username
,ExpressionAttribute值中有:v_full_path
。我想你会因为没有正确的替换数量而得到不同的验证错误。是否有输入错误?您使用的SDK是否是最新版本的DynamoDB API?不久前,“KeyConditionExpression”参数替换了“KeyConditions”,但如果您使用的是SDK的非常旧版本,则可能会解释此错误。感谢您的帮助。原来我有一个过时的aws sdk。