【发布时间】:2016-05-26 23:51:34
【问题描述】:
我有一个 DynamoDB 表“音乐”。在这方面,它有一个 GSI,其分区键为“Category”,排序键为“UserRating”。
作为示例,我可以轻松查询“类别”=“说唱”和“用户评分”=1 中的歌曲
例如,我想做的是查询“类别”=“Rap + Rock + Jazz”和“UserRating”= 1 中的歌曲。
这可能吗,还是我需要进行多个查询并在客户端加入它们?
这是我目前正在查询的代码:
SongDatabaseMappingAdapter songs = new SongDatabaseMappingAdapter();
songs.setCategory("Rap");
String userRatingQueryString = "1";
Condition rangeKeyCondition = new Condition()
.withComparisonOperator(ComparisonOperator.EQ)
.withAttributeValueList(new AttributeValue().withN(userRatingQueryString));
DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression()
.withHashKeyValues(songs)
.withIndexName("Category-UserRating-index")
.withRangeKeyCondition("UserRating", rangeKeyCondition)
.withConsistentRead(false);
return mapper.query(SongDatabaseMappingAdapter.class, queryExpression);
【问题讨论】:
标签: android amazon-web-services amazon-dynamodb