查询 Dynamo DB 索引:GSI 和 LSI
Querying Dynamo DB Indexes: GSI and LSI
我正在使用移动应用程序查询 Dynamo DB tables。我使用以下查询从 Dynamo DB 测试中获取一个项目 table:
测试 t = mapper.load(Test.class, DynamoDBHashKey, DynamoDBRangeKey);
我的问题是如何从全局二级索引中查询项目?我在测试 table 的 Java class 中正确定义了注释和参数。
是否有其他方法可以查询全局二级索引和本地二级索引。
load api
不能用于查询 GSI。 查询API可用于查询具有关键属性的GSI。
示例代码:-
Map<String, AttributeValue> vals = new HashMap<>();
vals.put(":val1", new AttributeValue().withS("somevalue"));
DynamoDBQueryExpression<modelclass> queryExp = new DynamoDBQueryExpression<modelclass>()
.withKeyConditionExpression("category = :val1").withIndexName("indexname")
.withExpressionAttributeValues(vals);
dynamoDBMapper.query(modelclass.class, queryExp);
我正在使用移动应用程序查询 Dynamo DB tables。我使用以下查询从 Dynamo DB 测试中获取一个项目 table:
测试 t = mapper.load(Test.class, DynamoDBHashKey, DynamoDBRangeKey);
我的问题是如何从全局二级索引中查询项目?我在测试 table 的 Java class 中正确定义了注释和参数。
是否有其他方法可以查询全局二级索引和本地二级索引。
load api
不能用于查询 GSI。 查询API可用于查询具有关键属性的GSI。
示例代码:-
Map<String, AttributeValue> vals = new HashMap<>();
vals.put(":val1", new AttributeValue().withS("somevalue"));
DynamoDBQueryExpression<modelclass> queryExp = new DynamoDBQueryExpression<modelclass>()
.withKeyConditionExpression("category = :val1").withIndexName("indexname")
.withExpressionAttributeValues(vals);
dynamoDBMapper.query(modelclass.class, queryExp);