如何从 Java 中的 DynamoDB getItem 中获取特定属性值
Posted
技术标签:
【中文标题】如何从 Java 中的 DynamoDB getItem 中获取特定属性值【英文标题】:How to fetch specific attribute value from DynamoDB getItem in Java 【发布时间】:2022-01-21 21:35:05 【问题描述】:我正在使用 Dynamodb 项目 - getItem
API 从 DynamoDB 表中获取记录。但它返回Item
对象,我想从Item
对象中检索特定的属性值。我们如何在 Java 中做到这一点?我找不到参考资料。
Table table = dynamoDB.getTable(tableName);
Item item = table.getItem(hashKeyFieldName, hashKeyFieldValue);
该项目包含以下字段:
HashKey, TimeStamp, NumRetries
我想从上面的item
中获取具体的 NumRetries 值。这是可能的吗?类似int numRetries = item.get("NumRetries");
?
【问题讨论】:
【参考方案1】:您可以使用Projection Expressions 从项目中获取某些属性,但请记住,使用投影表达式不会减少用于检索对象的 RCU 的使用和成本。
代码示例,
GetItemSpec spec = new GetItemSpec()
.withPrimaryKey("YourPrimaryKey", value)
.withProjectionExpression("NumRetries");
Item item = table.getItem(spec);
System.out.println(item.toJSONPretty());
更多代码示例可以在here找到。
【讨论】:
【参考方案2】:您应该可以使用Projection Expression:
GetItemSpec spec = new GetItemSpec().withPrimaryKey("primaryKey", primaryKey)
.withProjectionExpression("HashKey, TimeStamp, NumRetries");
Item outcome = table.getItem(spec);
names map 可能是必要的。
【讨论】:
以上是关于如何从 Java 中的 DynamoDB getItem 中获取特定属性值的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 EMR/Hive 将数据从 S3 导入 DynamoDB 时处理包含在引号 (CSV) 中的字段
使用“where”条件从 Amazon DynamoDB 获取项目
AWS SDK JavaScript v3 / 如何在 dynamoDB 扫描命令中使用 ExpressionAttributeNames?