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

Dynamodb - Scan and filter data from numeric list without including key attribute in the filter criteria

我正在尝试从数字列表中过滤数据。我使用了按列表过滤的扫描(即 withNS)。我遵循了下面 post 中的解决方案。我既没有收到任何错误,也没有收到结果集中的值。

DynamoDB java filter list - example

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

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

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

关键字"contains"解决了问题。现在,我可以按列表中存在的几个值过滤数据。

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