我正在尝试从数字列表中过滤数据。我已经使用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?
答案 0 :(得分:2)
关键字“包含”解决了这个问题。现在,我能够按列表中的几个值过滤数据。
eav.put(":val1", new AttributeValue().withN(userId));
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression()
.withFilterExpression("contains (Comments.UserIds, :val1)")
.withExpressionAttributeValues(eav);