我有一个 DynamoDB 表,其中包含一个字母数字字符串作为哈希键(例如“d4ed6962-3ec2-4312-a480-96ecbb48c9da”)。我需要根据表中的另一个字段来查询表,因此我需要我的查询来选择所有键,例如我的字段 x 在 dat x 和 date y 之间。
我知道我需要哈希键上的条件和范围键上的另一个条件,但是我很难编写一个不将我的查询绑定到特定 ID 的哈希键条件。
我以为我可以摆脱基于 ID 为 NOT_NULL 的冗余条件,但是当我使用它时,我得到了错误:
不支持查询键条件
以下是我使用的条件,知道如何实现这个目标吗?
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);
在此先感谢大家的帮助。