1

我有一个表并设置了一个 GSI 来进行查询。我设置条件的属性是数字类型。我为比较设置属性值,如下所示: AttributeValue value = new AttributeValue(); value.setN(String.valueOf(3));

我成功地进行了比较操作符设置为 EQ 的查询。给出了正确的结果,但其他选项(NE | LE | LT | GE | GT | etc)都不起作用。他们都抛出 ValidationException - 不支持查询关键条件(服务:AmazonDynamoDB;状态代码:400;...

我究竟做错了什么?

非常感激

4

1 回答 1

6

使用分区键属性查询 GSI 时,分区键只允许使用相等运算符。如果不知道partition key的值,需要使用scan api。

查询 api 允许其他条件运算符用于排序键属性。但是,您只能对分区键使用相等运算符。否则,您将无法使用查询 api。

当您将过滤器表达式与非键属性一起使用时,它允许使用各种条件运算符。

于 2017-09-25T23:02:33.237 回答