2017-04-11 5 views
4

Dynamodbのqueryメソッドでは、フィルタの一部としてパーティションキーが含まれている必要があります。パーティションキーがわからない場合は、どのようにクエリを実行できますか?非キー属性の問い合わせ

たとえば、パーティションキーとして属性useridが設定されたユーザーテーブルがあります。これで、電話番号でユーザーを検索します。パーティションキーなしでクエリを実行することは可能ですか? scanメソッドを使用すると、この目標を達成できますが、フィルタが適用される前にテーブルからすべての項目を引き出して、私が知る限りは犠牲にします。

答えて

4

phoneNumber列をインデックスハッシュキーとして使用して、global secondary index(GSI)を設定する必要があります。

UpdateTableを呼び出してGSIを作成できます。

インデックスを作成すると、IndexNameQueryを電話して、電話番号に基づいてユーザーレコードをプルすることができます。

+0

ああ、私はそれを見逃しているに違いない。完璧! –

関連する問題