DynamoDB扫描过滤器表达式是否可以使用带有列表的In子句?

时间:2016-11-28 21:08:17

标签: amazon-dynamodb

我可以将列表传递给扫描过滤器表达式的IN子句吗?

我正在尝试做这样的事情。它不会引发错误但我得不到匹配的结果。

ScanSpec scanSpec = new ScanSpec().withMaxResultSize(maxResults)
.withFilterExpression("#zipcode IN (:zipcode)")
.withNameMap(new NameMap().with("#zipcode", "zipcode"))
.withValueMap(new ValueMap().withList(":zipcode",Arrays.asList("12345","56789")));

1 个答案:

答案 0 :(得分:0)

您需要在FilterExpression中编码要匹配的值列表,而不是在ExpressionAttributeValues中编码。例如:

ScanSpec scanSpec = new ScanSpec().withMaxResultSize(maxResults)
.withFilterExpression("#zipcode IN :z1, :z2")
.withNameMap(new NameMap().with("#zipcode", "zipcode"))
.withValueMap(new ValueMap().withString(":z1", "12345").withString(":z2", "56789")));