Dynamodb - 从数字列表中扫描和过滤数据,而不包括过滤条件中的关键属性

时间:2016-05-15 17:39:30

标签: java amazon-dynamodb aws-sdk

我正在尝试从数字列表中过滤数据。我已经使用Scan with filter by list(即withNS)。我已经按照下面的帖子进行了解决。我既没有得到任何错误也没有得到结果集中的值。

DynamoDB java filter list - example

DynamoDBScanExpression scanExpression = new DynamoDBScanExpression()
            .withFilterExpression("Comments.UserIds IN (:val1)")
            .withExpressionAttributeValues(eav);

Comments是一个复杂的对象,它有List userIds(type:Integer)。我想通过userIds过滤数据。我没有所有的userIds。如果列表包含五个用户ID,我将有一个或两个用户ID。

有没有办法在AWS SDK中实现此要求 - Java?

1 个答案:

答案 0 :(得分:2)

关键字“包含”解决了这个问题。现在,我能够按列表中的几个值过滤数据。

eav.put(":val1", new AttributeValue().withN(userId));
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression()
        .withFilterExpression("contains (Comments.UserIds, :val1)")
        .withExpressionAttributeValues(eav);