J'ai une table DynamoDB "Music". Sur ce, il a un GSI avec la clé de partition "Catégorie" et la clé de tri "UserRating".DynamoDB interrogeant plusieurs éléments multiples dans la même clé de partition d'un GSI
Je peux interroger facilement comme un exemple pour les chansons qui sont « Catégorie » = « Rap » et « UserRating » = 1
Comment jamais ce que je voudrais faire, par exemple est des chansons de requête qui sont " Catégorie "=" Rap + Rock + Jazz "et" UserRating "= 1.
Est-ce possible ou dois-je effectuer plusieurs requêtes et les joindre côté client?
C'est le code que je suis Interrogation actuellement avec:
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);