AWS DynamoDB之间的查询错误

时间:2018-04-24 20:46:02

标签: aws-lambda amazon-dynamodb

我想在AWS Lambda中使用查询来过滤DynamoDB中的条目。我想收到两个数字之间的条目。我的数据库如下所示:

Database Schema

这些是我查询的参数:

var params = {
        TableName: "tableName",
        KeyConditions: {
            'date': {
                ComparisonOperator: "BETWEEN",
                AttributeValueList: [30, 100]
            }
        }
    };

    docClient.query(params, function(err, resp) {
        if (err) {
            _response = buildOutput(500, err);
            return callback(_response, null);
        }
        _response = buildOutput(200, resp);
        return callback(null, _response);
    });

我收到以下错误消息,但我不知道params中缺少什么

  

响应:{“message”:“查询条件错过了关键架构元素:id”

提前致谢!

1 个答案:

答案 0 :(得分:0)

要使用Query API,您需要在KeyConditions中提及哈希键。根据您的表定义,id似乎是表的哈希键属性。散列键是使用Query API的必需属性。您应该提供散列键的值,即Id,以便使用查询API。

如果您不知道哈希密钥,则可能需要使用扫描API 来获取数据。

同样,您无法在不知道表的哈希键的情况下使用查询API。即使如果您不知道索引的哈希键,创建索引也可能无济于事。

Query API