不支持查询键条件:已经有哈希和范围键

时间:2017-12-12 11:12:12

标签: node.js amazon-web-services amazon-dynamodb

我正在尝试查询Dynamo以查看jstatus = ErrorJobStatusIndex

此处Global Secondary Indexmodified_timePartition Keyjstatussort key dynamo.query({ TableName: "Jobs", IndexName: "JobStatusIndex", // Global Secondry Index KeyConditionExpression: `modified_time >= :ter and jstatus = :ste`, ExpressionAttributeValues: { ':ter': moment().subtract(1, 'day').unix(), ':ste': "Error" } },(err) => console.log(err))

ValidationException: Query key condition not supported

但我收到的错误是:

{{1}}

这可能是什么原因?我只是不明白这一点。

我已经经历了一些SO问题,但它没有解决问题。我已经有了所需的密钥。我错过了什么?

1 个答案:

答案 0 :(得分:2)

您只能在分区键(modified_time)上使用equals运算符。要进行查询,您必须指定一个分区键。

根据您的目标,您有很多不同的选择。最有可能的是你的分区密钥和排序密钥错误的方式为你的GSI。如果你使用分区键jstatus而使用sorted_time你的排序键就可以进行查询。

或者,您可以考虑执行scan,这不需要您指定任何索引或键。