文字列セットを使用してクエリの結果をフィルタリングしようとしています。私の弦セットは国々で構成されています。Android DynamoDB文字列での式のフィルタリング
基本的には、クエリを実行した後、フィルタで文字列セットの内容を確認し、その国の文字列セットの結果のみを表示するようにします。これは可能ですか?私が持っているコードは次のとおりです。
String[] countries = { "Japan", "Vietnam", "Thailand"};
Map<String, AttributeValue> eav = new HashMap<String, AttributeValue>();
eav.put(":val2", new AttributeValue().withSS(countries));
DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression()
.withFilterExpression("Place IN (:val2)") // this is the line i'm confused about
.withExpressionAttributeValues(eav)
.withHashKeyValues(someHashValue);
// Results of query should only show those with Place = Japan, Vietnam, or Thailand
ここで、「場所」はチェックしようとしている列の名前です。
これを行う1つの方法は、複数のOR文を使用してチェックすることです。しかし、私はこのフィルタを任意の文字列セットのサイズと互換性があるようにしたいので、OR文が行く方法ではないようです。
ご指摘いただきありがとうございます。前もって感謝します!
Trey、ありがとうございました!クエリ文字列を手動で構築することは、私の設計とうまくいった。私が使用した唯一の違いは、別のライブラリをインポートする必要があるために.joinメソッドを使用したくないということでした。したがって、別のforループを使用して手動で文字列とORを結合しました。 ありがとうTrey!心から感謝する! – skippyco