計画
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 のドキュメント」を参照してください。