お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

行の取得

Catalyst Data Store のテーブルから、単一行または複数行のデータを取得できます。これらのコードスニペットで使用している table の参照は、テーブルインスタンスまたはテーブルメタのいずれかです。

単一行の取得

getRow() メソッドを使用して、テーブルから単一行を取得できます。以下のサンプルコードに示すように、このメソッドに行の一意の Row ID を渡す必要があります。

ここで返される Promise は JSON の行オブジェクトに解決されます。

copy
 //テーブルインスタンスまたはテーブルメタオブジェクトを使用して行IDを渡して行を取得する 
let rowPromise = table.getRow(1510000000109476);

受信するサンプルレスポンスを以下に示します。レスポンスは Node.js の両方のバージョンで同じです。

copy
{ 
CREATORID: "2136000000006003", 
MODIFIEDTIME: "2021-08-17 13:02:11:184", 
CREATEDTIME: "2021-08-16
16:29:10:499", 
CityName: "Pune", 
ROWID: "2136000000011011" 
}

ページネーションによる全行の取得

getMyPagedRows() 関数を使用してコードにページネーションを組み込むことで、Data Store のテーブルからすべてのデータ行を取得できます。ページネーションを使用すると、イテレーションを通じてテーブルの行をバッチまたはページ単位で取得できます。

このイテレーションは、以下のコードに示すように hasNext, で検証されるすべての行が取得されるまで実行されます。テーブルは一意のテーブル ID で参照できます。

たとえば、各ページで 100 行ずつのバッチで行を取得する場合、各ページで取得する最大行数の変数を定義し、数を指定できます。以下のサンプルコードでは、maxRows を 100 に設定しています。

Note: maxRows パラメータはオプションです。この値を指定しない場合、SDK の呼び出しはデフォルトで 1 ページあたり 200 行を返します。

さらに、ループの各実行後に、後続のデータ取得を認可するトークン文字列がレスポンスデータに含まれます。このトークンは next_token を通じて取得でき、以下のコードに示すように、後続のイテレーション時に nextToken の値として渡します。ループの最初の実行時、nextToken 文字列の値は undefined に設定されます。次のレコードセットは、レスポンスデータの more_records を通じて取得されます。

Note: ページネーションは Node.js SDK v2.1.0 アップデートから利用可能になりました。古いバージョンの Node.js SDK では利用できません。
copy
//ページネーションで行を取得し、最初のイテレーションではnextTokenの値をundefinedとして宣言する function
getMyPagedRows(hasNext = true, nextToken = undefined) 
{ 
if (!hasNext) 
{ 
return; 
} 
dataStore.table(195000000042025)
//レコードを取得するテーブルのテーブルIDを指定する 
.getPagedRows({ nextToken, maxRows: 100 }) 
//1ページで取得する最大行数を定義する and pass it along with nextToken 
.then(({ data, next_token, more_records
}) => { console.log('rows : ', data); 
//テーブルから行を取得する 
return getMyPagedRows(more_records, next_token);
//次のレコードセットと次の反復用のトークン文字列を取得する 
}) .catch((err) => {
console.log(err.toString()); }); 
}

さらにレコードがある場合に受信するサンプルレスポンスを以下に示します。この場合、more_records パラメータは true に設定されます。

Node.js v2.1.0

copy
{
    "status": 200,
    "data": [
        {
            "CREATORID": "3359000000006003",
            "MODIFIEDTIME": "2022-01-11 18:18:24:855",
            "name": "Alex Jones",
            "CREATEDTIME": "2022-01-11 18:18:24:855",
            "ROWID": "3359000000108111"
        },
        {
            "CREATORID": "3359000000006003",
            "MODIFIEDTIME": "2022-01-11 18:18:25:117",
            "name": "Robert Neal",
            "CREATEDTIME": "2022-01-11 18:18:25:117",
            "ROWID": "3359000000108114"
        },
        {
            "CREATORID": "3359000000006003",
            "MODIFIEDTIME": "2022-01-11 18:18:25:120",
            "name": "Roslyn Gunn",
            "CREATEDTIME": "2022-01-11 18:18:25:120",
            "ROWID": "3359000000108117"
        }
    ],
    "message": "OK",
    "more_records": true,
    "next_token": "{{token}}"
}

これ以上レコードがない場合に受信するサンプルレスポンスを以下に示します。この場合、more_records パラメータは false に設定されます。

Node.js v2.1.0

copy
{
    "status": 200,
    "data": [
        {
            "CREATORID": "3359000000006003",
            "MODIFIEDTIME": "2022-01-11 18:18:43:556",
            "name": "Alex Jones",
            "CREATEDTIME": "2022-01-11 18:18:43:556",
            "ROWID": "3359000000108410"
        },
        {
            "CREATORID": "3359000000006003",
            "MODIFIEDTIME": "2022-01-11 18:18:43:557",
            "name": "Robert Neal",
            "CREATEDTIME": "2022-01-11 18:18:43:557",
            "ROWID": "3359000000108413"
        },
        {
            "CREATORID": "3359000000006003",
            "MODIFIEDTIME": "2022-01-11 18:18:43:568",
            "name": "Roslyn Gunn",
            "CREATEDTIME": "2022-01-11 18:18:43:568",
            "ROWID": "3359000000108417"
        }
    ],
    "message": "OK",
    "more_records": false
}
Note: 以前テーブルから複数行のデータを取得するために提供されていた getAllRows() メソッドのサポートは廃止されました。ページネーションは、取得する行数に制限なくすべての行を取得できる拡張機能として利用可能になりました。getAllRows() メソッドは、今後のすべての SDK バージョンから削除される予定です。コードを適宜アップグレードしてください。

最終更新日 2026-03-30 13:40:30 +0530 IST