2017-02-23 1 views
0

次の構造を持つテーブルにアイテムがある場合。主キーをパーティショニングキーとして使用し、DynamoDbドキュメントの属性を1つ使用してLSIインデックスを作成する

DynamoDbでは、パーティショニングキーとして「a」を使用し、クエリのソートキーとして「aa」を使用できますか?

{ 
    "a" : "", 
    "b" : "", 
    "c" : "", 
    "d" : [ { 
     "aa" : "", 
     "bb" : "" 
     }, 
     { 
     "aa" : "", 
     "bb" : "" 
     } 
    ] 
} 

答えて

1

はい、パーティションキーとして「a」を使用できます。

ただし、「aa」をSORTキーとして使用することはできません。ソートキーはスカラ型(String、Number、Boolean)でなければなりません。

LSI/GSIのキーは、ドキュメントデータ型(リスト、マップ、およびセット)のキーでもありません。

+0

したがって、ドキュメントのitemlistの特定のアイテムをクエリする方法はありますか? –

+0

はい、クエリAPIは、パーティションキーが使用可能な場合にのみ使用できます。パーティションキーが分かっている場合は、ドキュメントのitemlistを含むFilterExpressionに追加のフィルタ条件を含めることができます。パーティションキーが分からない場合は、フィルタ式でScan APIを使用できます。ただし、フル・テーブル・スキャンであり、コストのかかる操作です。 – notionquest

関連する問題