【问题标题】:How to fetch specific attribute value from DynamoDB getItem in Java如何从 Java 中的 DynamoDB getItem 中获取特定属性值
【发布时间】: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");

【问题讨论】:

    标签: java amazon-web-services amazon-dynamodb aws-sdk


    【解决方案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 可能是必要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多