2
3

More than 3 years have passed since last update.

DynamoDB queryパラメータまとめ

Last updated at Posted at 2020-04-05

はじめに

今さらだがDynamoDBのクエリパラメータについてまとめる。
既に他の人が同じような記事を書いているかもしれないが、
AWSのドキュメントを読んでいて、
「分かりづらいから一覧でまとめてくれ!!」と思い
あくまで自分のためのメモとして残す。
他のDB操作パラメータについては必要が出てきたら追記するつもり。

Query Parameters

TableName

  • 文字通りテーブル名を指定する

KeyConditionExpression

  • プライマリーキー(パーティションキー、ソートキー)、セカンダリーインデックスに対する条件式を記述する
  • DynamoDB予約語でなければ、後述のExpressionAttributeNamesでプレースホルダーを指定しなくてもそのまま使える
    • image.png
    • :main, :subはExpressionAttributeValuesで宣言する
    • 属性値のプレースホルダーにはコロンが必要

ExpressionAttributeNames

  • KeyConditionExpressionで使う属性名のプレースホルダーを定義する
  • オブジェクト文字列で指定する
  • #を接頭辞としてつけるのが必須
    • image.png
    • この場合、ViewsがDynamoDBの予約語であるため、別名を指定しなければならないという事情もある

ExpressionAttributeValues

  • KeyConditionExpressionで使う属性値のプレースホルダーを定義する
  • オブジェクトで指定
  • 接頭辞としてコロン:をつけるのが必須
    • image.png
    • 条件式自体が文字列であるため、そのまま書くと文字列か数値かが判別できないため、型定義(S: 文字列、N:数値)が必要なのだと思われる

FilterExpression

  • テーブルからのクエリ実行後に、APIとしての戻り値をフィルタリングするための条件式を書く
  • ExpressionAttributeNames, ExpressionAttributeValuesで定義したプレースホルダーを使って、KeyConditionExpressionと同様にして書ける

ProjectionExpression

  • クエリ結果に対して、出力される属性を指定したい場合に使う
    • image.png

その他

DynamoDB DocumentClient

  • ExpressionAttributeValuesで指定していた型宣言が不要になる
  • 上記の例だと、次のようになる
    • image.png
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3