我有一个DynamoDB表,其中哈希键是一个字母数字字符串(例如“d4ed6962-3ec2-4312-a480-96ecbb48c9da”)。我需要根据表中的另一个字段查询该表,因此我需要我的查询选择所有键,例如我的字段x在日期x和日期y之间。
我知道我需要在哈希键上设置条件,并在范围键上设置另一个条件,但我很难组成一个不绑定查询到特定ID的哈希键条件。
我曾经认为可以使用基于ID不为空的冗余条件来解决问题,但当我使用它时,我会收到以下错误:
查询键条件不受支持
以下是我正在使用的条件,你有什么想法如何实现这个目标?
我知道我需要在哈希键上设置条件,并在范围键上设置另一个条件,但我很难组成一个不绑定查询到特定ID的哈希键条件。
我曾经认为可以使用基于ID不为空的冗余条件来解决问题,但当我使用它时,我会收到以下错误:
查询键条件不受支持
以下是我正在使用的条件,你有什么想法如何实现这个目标?
Condition hashKeyCondition = new Condition()
.withComparisonOperator(ComparisonOperator.NOT_NULL.toString());
Condition rangeCondition = new Condition()
.withComparisonOperator(ComparisonOperator.BETWEEN.toString())
.withAttributeValueList(new AttributeValue().withS(dateFormatter.print(lastScanTime())),
new AttributeValue().withS(dateFormatter.print(currentScanTime)));
Map<String, Condition> keyConditions = new HashMap<String, Condition>();
keyConditions.put("userId", hashKeyCondition);
keyConditions.put("lastAccesTime", rangeCondition);
非常感谢所有提供帮助的人。