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 或 GSI 定义的主键?
GSI只能Query
,Get
仍然是基于主键。
我正在尝试使用 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 或 GSI 定义的主键?
GSI只能Query
,Get
仍然是基于主键。