Мне нужно получить данные из DynamoDB с помощью идентификаторов пользователя, для этого я хочу использовать условие IN
, но я не могу найти инструкцию, как это использовать, можете ли вы мне помочь? У меня есть код, как заменить userId = :id1 OR userId = :id2
на userId IN :ids
? Как установить userIds
в :ids
?Как я могу использовать условие IN для DynamoDB
public List<Data> getByUserIds(List<Long> userIds) {
Table table = dynamoDB.getTable(getTableName());
ScanSpec scanSpec = new ScanSpec()
.withFilterExpression("userId = :id1 OR userId = :id2")
.withValueMap(new ValueMap()
.withNumber(":id1", userIds.get(0))
.withNumber(":id2", userIds.get(1))
);
ItemCollection<ScanOutcome> scanOutcome = table.scan(scanSpec);
return convertItemToData(scanOutcome.iterator());
}
Спасибо!
не решить мою проблему, потому что я могу иметь 1..10 ... 100 условие 'IN' и с' BatchGetIItem' будет выглядеть плохо –