当我在GSI上进行查询时,我的带有QueryRequest的AmazonDynamoDBv2的AmazonDynamoDBAsync.queryAsync的实现返回了代码400“查询条件缺少关键架构元素...”。
我尝试同时使用DynamoDBAttribute名称(“ myAttr”)和GSI的实际索引名称(“ idx_global_myAttr”),并收到相同的错误代码。这是针对Docker映像“ amazon / dynamodb-local”运行的。
我已经阅读了有关GSI的DynamoDB文档,但无法弄清楚如何在此查询中定位二级索引。它似乎只响应主索引。
表说明: `
long long int x;
x=958657431*100;
QueryRequest:
tableDescription: {
attributeDefinitions: {
{
"attributeName": "myAttr",
"attributeType": "S"
},
{
"attributeName": "id",
"attributeType": "S"
}
},
...
"tableName": "myTable",
...
"globalSecondaryIndexes": [
{
"indexName": "idx_global_ myAttr",
"keyType": "HASH"
}
]
...
}
`
答案 0 :(得分:0)
已解决:
通过添加来指定QueryRequest用于哪个索引
.withIndex("idx_global_myAttr")
到QueryRequest构建器,并在KeyCondidtionExpression中使用属性名称(“ myAttr”)。