テーブルの一覧の取得
テーブルサンプルページを表示したときに一覧を取得し表示しています。通常でDBと同じようにクエリを生成し、実行することで結果を取得できます(リスト9)。
//(1)クエリの作成 var tableQuery = azure.TableQuery.select().from(TABLE_NAME); //(2)クエリの実行 client.queryEntities(tableQuery, function(err, entities, cont) { ... });
(1)でTableQueryオブジェクトからクエリを作成します。この例ではfromメソッドで指定したテーブル、すべてのプロパティを含むエンティティを取得します。RDBMSのようにJOINやORDER BYなど複雑なクエリを実行することはできません。ここでは説明しませんが、formメソッドの後に、whereやandメソッドを連結することで簡単なクエリは構成できます。
(2)のqueryEntitiesメソッドでクエリを実行します。第1引数にクエリを指定すると、コールバック関数の第2引数entitiesに配列として結果が格納されます。
エンティティの削除
一覧に表示されたエンティティ横のチェックボックスにチェックを入れ、削除ボタンをクリックすることでエンティティを削除します(リスト10)。
//(1)削除したいエンティティ指定 var entity = { PartitionKey : 'pkey', RowKey : dels[i], }; //(2)指定したエンティティを削除 client.deleteEntity(TABLE_NAME, entity, function(err) { ... });
(1)には削除したいエンティティを指定するために、パーティションキーと行キーを持つデータを作成します。先ほども説明したように、エンティティはパーティションキーと行キーの組み合わせがテーブル全体で一意です。このためパーティションキーと行キーを指定すれば削除したいエンティティを特定することができます。
(2)のdeleteEntityメソッドでエンティティを削除します。第1引数にテーブル名、第2引数に(1)で作成したデータを指定します。
まとめ
6月のWindows Azureのアップデートにより、GitやWebMatrix経由からもNode.jsを簡単に使うことができるようになりました。Azure SDKのAPIリファレンスが未整備であるため少し使いにくさがありますが、AzureストレージとNodeを組み合わせて新しいサービスを開発できる環境が整いつつあるでしょう。