AWS DynamoDB 之间的查询错误

Posted

技术标签:

【中文标题】AWS DynamoDB 之间的查询错误【英文标题】:AWS DynamoDB query error for between 【发布时间】:2018-04-24 20:46:01 【问题描述】:

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

这些是我的查询参数:

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);
    );

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

response: "message":"查询条件错过了key schema element: id"

提前致谢!

【问题讨论】:

【参考方案1】:

要使用查询 API,您需要在 KeyConditions 中提及哈希键。根据您的表定义,看起来 id 是表的哈希键属性。 Hash key 是使用 Query API 的必备属性。您应该提供哈希键的值,即Id,以便使用查询 API。

如果您不知道哈希键,您可能需要使用 Scan API 来获取数据。

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

Query API

【讨论】:

以上是关于AWS DynamoDB 之间的查询错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS dynamoDB按日期查询

AWS:从 Pandas 数据帧写入 DynamoDB

AWS:从 dynamodb 到 redshift 的数据转换 [关闭]

如何使用 AWS Lambda 按名称查询 dynamoDB 表

aws - 我应该创建两个 lambda 函数来处理 dynamodb 查询和非查询用例吗?

查询条件缺少关键架构元素:验证错误