AWS SDK for .NET ドキュメントモデルを使用して DynamoDB の項目の操作する - Amazon DynamoDB

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

AWS SDK for .NET ドキュメントモデルを使用して DynamoDB の項目の操作する

ドキュメントモデルを使用してデータオペレーションを実行するには、最初に Table.LoadTable メソッドを呼び出して、特定のテーブルを表す Table クラスのインスタンスを作成します。次の C# の例では、Amazon DynamoDB で ProductCatalog テーブルを表す Table オブジェクトを作成しています。

Table table = Table.LoadTable(client, "ProductCatalog");
注記

通常、LoadTable メソッドはアプリケーションの開始時に 1 回使用するだけです。このメソッドによって、DynamoDB へのラウンドトリップに DescribeTable 呼び出しが追加されるためです。

その後、Table オブジェクトを使用して、さまざまなデータオペレーションを実行することができます。各データ操作には、次の2種類のオーバーロードがあります。1 つは最低限必要なパラメータを使用し、もう 1 つはオプションの動作固有の構成情報を使用します。たとえば項目を取得するには、テーブルのプライマリキーの値を入力する必要がありますが、その場合は次の GetItem オーバーロードを使用できます。

// Get the item from a table that has a primary key that is composed of only a partition key. Table.GetItem(Primitive partitionKey); // Get the item from a table whose primary key is composed of both a partition key and sort key. Table.GetItem(Primitive partitionKey, Primitive sortKey);

これらのメソッドには、オプションのパラメータを渡すこともできます。たとえば前述の GetItem では、すべての属性を含む項目全体が返されます。オプションで、取り出す属性のリストを指定することもできます。この場合は、オペレーション固有の設定オブジェクトパラメータをとる、次の GetItem オーバーロードを使用します。

// Configuration object that specifies optional parameters. GetItemOperationConfig config = new GetItemOperationConfig() { AttributesToGet = new List<string>() { "Id", "Title" }, }; // Pass in the configuration to the GetItem method. // 1. Table that has only a partition key as primary key. Table.GetItem(Primitive partitionKey, GetItemOperationConfig config); // 2. Table that has both a partition key and a sort key. Table.GetItem(Primitive partitionKey, Primitive sortKey, GetItemOperationConfig config);

設定オブジェクトを使用することで、特定の属性リストのリクエストやページサイズ(ページあたりの項目数)の指定など、複数のオプションパラメータを指定できます。それぞれのデータオペレーションメソッドには、独自の設定クラスがあります。たとえば、GetItemOperationConfig クラスを使用して、GetItem オペレーションのオプションを指定します。PutItemOperationConfig クラスを使用して、PutItem オペレーション用にオプションのパラメータを指定することができます。

以下のセクションでは、Table クラスでサポートされているそれぞれのデータオペレーションについて説明します。

項目の入力 – Table.PutItem メソッド

PutItem メソッドは、入力された Document インスタンスをテーブルにアップロードします。入力された Document で指定されているプライマリキーを持つ項目がテーブル内に存在する場合は、PutItem オペレーションによって、既存の項目全体が置換されます。新しい項目は、Document メソッドに指定した PutItem オブジェクトと同じになります。元の項目にそれ以外の属性が存在していたとしても、新しい項目には存在しません。

次に、AWS SDK for .NET ドキュメントモデルを使用してテーブルに新しい項目を入力するステップを示します。

  1. 項目を置くテーブル名を生成する Table.LoadTable メソッドを実行します。

  2. 属性名と値のリストが含まれる、Document オブジェクトを作成します。

  3. Table.PutItem インスタンスをパラメータとして入力して、Document を実行します。

以下の C# コード例は、前述のタスクの例です。この例では、項目を ProductCatalog テーブルにアップロードします。

Table table = Table.LoadTable(client, "ProductCatalog"); var book = new Document(); book["Id"] = 101; book["Title"] = "Book 101 Title"; book["ISBN"] = "11-11-11-11"; book["Authors"] = new List<string> { "Author 1", "Author 2" }; book["InStock"] = new DynamoDBBool(true); book["QuantityOnHand"] = new DynamoDBNull(); table.PutItem(book);

前述の例では、 Document インスタンスは、 NumberStringString SetBoolean、および Null 属性。(Null は、 手持ち数量 不明) 対象: Boolean および Null、コンストラクターメソッドを使用 DynamoDBBool および DynamoDBNull.

DynamoDB では、データ型 List および Map は、他のデータ型で構成された要素を含むことができます。これらのデータ型をドキュメントモデル API にマッピングする方法を以下に示します。

  • リスト — DynamoDBList コンストラクタを使用します。

  • マップ — Document コンストラクタを使用します。

項目に List 属性を追加するように、前述の例を変更することができます。これを行うには、次のサンプルコードに示すように、DynamoDBList コンストラクタを使用します。

Table table = Table.LoadTable(client, "ProductCatalog"); var book = new Document(); book["Id"] = 101; /*other attributes omitted for brevity...*/ var relatedItems = new DynamoDBList(); relatedItems.Add(341); relatedItems.Add(472); relatedItems.Add(649); book.Add("RelatedItems", relatedItems); table.PutItem(book);

を追加するには、 Map をブックに関連付け、別の Document。 次のコード例は、この方法を示しています。

Table table = Table.LoadTable(client, "ProductCatalog"); var book = new Document(); book["Id"] = 101; /*other attributes omitted for brevity...*/ var pictures = new Document(); pictures.Add("FrontView", "http://example.com/products/101_front.jpg" ); pictures.Add("RearView", "http://example.com/products/101_rear.jpg" ); book.Add("Pictures", pictures); table.PutItem(book);

これらの例は、式を使用する時の項目属性の指定 に示された項目に基づいています。ドキュメントモデルを使用すると、導入事例の ProductReviews 属性のように複雑な入れ子になった属性を作成することができます。

オプションパラメータの指定

PutItem オペレーションに PutItemOperationConfig パラメータを追加することで、オプションパラメータを設定できます。オプションパラメータの詳細なリストについては、PutItem を参照してください。次の C# のサンプルコードでは、ProductCatalog テーブルに項目を配置します。次のオプションパラメータが指定されています。

  • 条件付き入力リクエストとする ConditionalExpression パラメータ。例では、置き換える項目に ISBN 属性が存在し、それが特定の値でなくてはならないことを指定する式を作成します。

Table table = Table.LoadTable(client, "ProductCatalog"); var book = new Document(); book["Id"] = 555; book["Title"] = "Book 555 Title"; book["Price"] = "25.00"; book["ISBN"] = "55-55-55-55"; book["Name"] = "Item 1 updated"; book["Authors"] = new List<string> { "Author x", "Author y" }; book["InStock"] = new DynamoDBBool(true); book["QuantityOnHand"] = new DynamoDBNull(); // Create a condition expression for the optional conditional put operation. Expression expr = new Expression(); expr.ExpressionStatement = "ISBN = :val"; expr.ExpressionAttributeValues[":val"] = "55-55-55-55"; PutItemOperationConfig config = new PutItemOperationConfig() { // Optional parameter. ConditionalExpression = expr }; table.PutItem(book, config);