当我在 GSI 上查询时,我使用 QueryRequest 实施 AmazonDynamoDBv2 的 AmazonDynamoDBAsync.queryAsync 时返回代码 400“查询条件缺少关键架构元素...”。
我尝试使用 DynamoDBAttribute 名称 ("myAttr") 和 GSI 的实际索引名称 ("idx_global_myAttr") 并收到相同的错误代码。这是针对 Docker 映像“amazon/dynamodb-local”运行的。
我已阅读有关 GSI 的 DynamoDB 文档,但我无法弄清楚如何在此查询中定位二级索引。它似乎只响应主索引。
表说明:`
tableDescription: {
attributeDefinitions: {
{
"attributeName": "myAttr",
"attributeType": "S"
},
{
"attributeName": "id",
"attributeType": "S"
}
},
...
"tableName": "myTable",
...
"globalSecondaryIndexes": [
{
"indexName": "idx_global_ myAttr",
"keyType": "HASH"
}
]
...
}
`
查询请求:
`
var attributeValue = new AttributeValue().withS(value);
var expressionAttributeValueMap = Map.of(":v1", attributeValue);
var queryRequest = new QueryRequest("myTable")
.withExpressionAttributeValues(expressionAttributeValeMap)
.withKeyConditionExpression("myAttr = :v1");
`