我需要为几个不同表的表中的每个项目添加一个属性。我希望能够提供一个表名,然后将属性添加到表中的所有内容,即使代码无需“知道”表中的当前属性也是如此。
我当前的计划是浏览表,获取键,然后将其用作updateItem请求的输入,在该请求中,我们将新属性添加到表中。
但是,我遇到了一个问题,因为该扫描返回了属性图,并且没有进行硬编码,所以我不确定如何才能识别出某些东西是键或sortKey还是仅仅是一个随机属性?
这是一个非常简单的问题示例:
public void someFunc() {
ScanRequest scanRequest = new
ScanRequest().withTableName(tableName);
ScanResult result = dynamoClient.scan(scanRequest);
result.getItems().forEach(item -> addFlag(item));
}
public void addFlag(Map<String, AttributeValue> item) {
// How do I know which attributes to use as a key? I'd like to keep this generic so I can use it on theoretically any table.
final UpdateItemRequest updateItemRequest = new UpdateItemRequest()
.withKey(// map of attribute name to attribute here)
}