我正在尝试查询Dynamo以查看jstatus = Error
和JobStatusIndex
此处Global Secondary Index
为modified_time
,Partition Key
为jstatus
,sort 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问题,但它没有解决问题。我已经有了所需的密钥。我错过了什么?
答案 0 :(得分:2)
您只能在分区键(modified_time)上使用equals运算符。要进行查询,您必须指定一个分区键。
根据您的目标,您有很多不同的选择。最有可能的是你的分区密钥和排序密钥错误的方式为你的GSI。如果你使用分区键jstatus而使用sorted_time你的排序键就可以进行查询。
或者,您可以考虑执行scan,这不需要您指定任何索引或键。