DynamoDB - 使用 GetItemRequest 使用 Hash 和 Range 的全局二级索引

DyanamoDB - Global Secondary Index using GetItemRequest using Hash and Range

我正在尝试使用 Java AWS SDK 获取基于全球二级索引的文档。

设置如下:

哈希键: MyId - 数字

范围键: MyDate - 字符串

这是我的代码:

Map<String, AttributeValue> key = new HashMap<String, AttributeValue>();
            key.put("MyId", new AttributeValue().withN("1234"));

            key.put("MyDate", new AttributeValue().withS("2014-10-12"));

        GetItemRequest go = new GetItemRequest().withTableName(tableName).withKey(key);
        GetItemResult result = getDynamoDBClient().getItem(gi);

但这总是 returns :

The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400

我哪里错了?

一些注意事项,首先您谈论的是 GSI,但您正在 GetItemRequest 按主键进行操作。所以也许你在你的问题中遗漏了一些东西。

您是否在问题中写下了 table 或 GS​​I 定义的主键?

GSI只能QueryGet仍然是基于主键。