私はDynamoDBテーブル "Music"を持っています。これには、パーティションキー "Category"とソートキー "UserRating"を持つGSIがあります。DynamoDBはGSIの同じパーティションキーにある複数の項目を照会します
私は「カテゴリー」である=「ラップ」と「UserRating」の歌のための一例として、簡単に問い合わせることができますが= 1
どのようにこれまで私は、たとえばやりたい何か」であるクエリの曲です"="ラップ+ロック+ジャズ "と"ユーザー格付け "= 1
これは可能ですか、複数のクエリを作成してクライアント側でそれらを結合する必要はありますか?
これは私が現在で照会していたコードです:あなたは「ラップ、1」、「ロック、1」と「ジャズ、のための3つの異なるコール(すなわち、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);