我有一个ID类型为String的List . 我想扫描DynamoDB并获取包含没有这些ID的项目的结果列表 . 但我无法弄清楚如何键入过滤器表达式 . ReviewId是String类型的主分区键 .
Map<String, AttributeValue> eav = new HashMap<>();
eav.put(":idFilter", new AttributeValue().withSS(idFilter));
DynamoDBScanExpression scanExp = new DynamoDBScanExpression()
.withFilterExpression("ReviewId <> (:idFilter)")
.withExpressionAttributeValues(eav);
上面的过滤器表达式是有效的,但它仍然总是返回列表中具有id的项目 . 我还试图在 <>
运算符之前和之后包含 in
这个词 .
1 回答
您可以更改过滤器表达式,如下所示,并使用键
:reviewId1, :reviewId2, :reviewId3
的值填充ExpressionAttributeValues
.Note:-
不幸的是,您无法将
idFilter
保留为SET或LIST以与DynamoDB的String属性进行比较 .