計画
GetItem
、Scan
、Query
、BatchGetItem
および TransactGetItems
オペレーションを使用して DynamoDB のオブジェクトを読み取る場合、必要な属性を識別するプロジェクションをオプションで指定できます。projection プロパティの構造は以下のとおりです。これらはフィルタに似ています。
type DynamoDBExpression = { expression: string; expressionNames?: { [key: string]: string} };
各フィールドの定義は以下のようになります。
-
expression
-
プロジェクション式、これは文字列です。1 つの属性を取得するには、名前を指定します。複数の属性の場合、名前をカンマで区切る必要があります。プロジェクション式の記述の詳細については、「DynamoDB プロジェクション式」のドキュメントを参照してください。このフィールドは必須です。
-
expressionNames
-
式の属性名のプレースホルダーを示します。キー - 値のペアの形式になります。キーは、
expression
で使用される名前のプレースホルダーに対応します。値は、DynamoDB の項目の属性名に対応する文字列である必要があります。このフィールドはオプションであり、expression
で使用される式の属性名のプレースホルダーのみを入力します。expressionNames
の詳細については、「Amazon DynamoDB のドキュメント」を参照してください。
例 1
次の例は、DynamoDB から属性 author
と id
だけが返される JavaScript 関数のプロジェクションセクションです。
projection : { expression : "#author, id", expressionNames : { "#author" : "author" } }
ヒント
SelectionSetList を使用して GraphQL リクエストセレクションセットにアクセスできます。このフィールドでは、要件に応じてプロジェクション式を動的にフレーミングできます。
注記
Query
と Scan
のオペレーションでプロジェクション式を使用する場合、select
の値は SPECIFIC_ATTRIBUTES
でなければなりません。詳細については、「DynamoDB のドキュメント」を参照してください。