Amazon dynamodb Dynamodb查询中意外的键KeyConditionExpression

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

我试图查询一个名为“user_path_summary”的表,查找一个值,该值等于我的hashkey“username”,也等于我的全局二级索引hashkey“full_path”。我希望得到一个属性,“文章阅读”。我使用的参数是:

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。