首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DynamoDB/Dynalite查询未返回使用nodejs的查询

DynamoDB/Dynalite查询未返回使用nodejs的查询
EN

Stack Overflow用户
提问于 2015-12-21 23:58:57
回答 1查看 849关注 0票数 2

我正在尝试学习亚马逊网络服务的DynamoDB,遇到了一个看起来很简单的问题,我搞不懂。

我在本地使用在nodejs上运行的Dynalite。错误如下;

{ ValidationException:必须在请求中指定KeyConditions或KeyConditionExpression参数。消息:‘必须在请求中指定KeyConditions或KeyConditionExpression参数。’,代码:'ValidationException',时间: Mon Dec 21 2015 17:31:47 GMT+0200 (SAST),requestId: false statusCode: 400,retryable: false,retryDelay: 0}

我的表创建如下(为简洁起见,代码被剥离);

代码语言:javascript
复制
var params = {
    TableName : "test",
    KeySchema: [       
      { AttributeName: "email", KeyType: "HASH" },  
      { AttributeName: "date", KeyType: "RANGE" }
    ],
    AttributeDefinitions: [       
        { AttributeName: "email", AttributeType: "S" },
        { AttributeName: "date", AttributeType: "N" }
    ],
    ProvisionedThroughput: {       
        ReadCapacityUnits: 1, 
        WriteCapacityUnits: 1
    }
}

dynamodb.createTable(params, function(err, data) {
    if (err) { console.log(JSON.stringify(err, null, 2)) }
    } else   { console.log(JSON.stringify(data, null, 2)) }
})

测试数据的加载方式如下:

代码语言:javascript
复制
var params = { 
    TableName: 'test',
        Item: {
            "email":   lowerCasedEmail,
            "date":    date,                                                
            "amount":  amount,
        }
    }

  dynamodbDoc.put(params, function(err, data) {
     if (err){
       console.log(JSON.stringify(err, null, 2))
     } else {
        console.log(JSON.stringify(data, null, 2))
     }
  })

则失败的查询如下;

代码语言:javascript
复制
var params = {
    TableName: "test",    
    KeyConditionExpression: "email = :testmail",
    ExpressionAttributeValues: {
      ":testmail": "rik@test.com"
    }
}

dynamodbDoc.query(params, function(err, data) {
   if (err) { console.log(err) } 
   else {
      if (Object.keys(data).length === 0) {
             console.log('Nothing found.')
      } else { console.log(data) }
   }
 })
EN

回答 1

Stack Overflow用户

发布于 2015-12-26 19:31:42

我找到问题了。Dynalite不能正确处理KeyConditionExpression。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34399678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档