Node.js SDK の `batchGetRow` メソッドを使用することで、1 つ以上の Tablestore テーブルから複数の行を単一のリクエストで読み取ります。
注意事項
1 回のバッチ読み取り操作で、最大 100 行のデータを読み取ることができます。
前提条件
メソッド
batchGetRow: function batchGetRow(params, callback)
例
以下のサンプルコードは、test_table テーブルからプライマリキー値が row1 と row2 の 2 行を読み取ります。
var table = {
// テーブル名を設定します
tableName: 'test_table',
primaryKey: [
// 1 行目のプライマリキー情報を追加します
[{ 'id': 'row1' }],
// 2 行目のプライマリキー情報を追加します
[{ 'id': 'row2' }]
]
};
var params = {
tables: [
table
]
}
// batchGetRow メソッドを呼び出して、バッチデータクエリを実行します
client.batchGetRow(params, function (err, data) {
if (err) {
console.log('Batch get row failed with error: ', err);
return;
}
// 応答を処理します
console.log('* RequestId: ', data.RequestId);
console.log('* Rows Data: ');
data.tables.forEach(function (rows) {
rows.forEach(function (row) {
if (row.isOk) {
console.log('Succeeded Row:', row.tableName, JSON.stringify(row.primaryKey), JSON.stringify(row.attributes));
} else {
console.log('Failed Row:', row.tableName, row.errorMessage);
}
});
});
});
バッチデータ読み取りのパラメーターを設定する際は、以下のサンプルコードをご参照ください。
-
複数のテーブルからデータを読み取ります。バッチ読み取りは、単一のリクエストで複数のテーブルからデータを読み取ることをサポートしています。各テーブルのクエリ条件を指定できます。
var table1 = { tableName: 'orders_small', primaryKey: [ [{ 'order_id': '90fb478c-1360-11f0-a34d-00163e30a2a9' }] ] }; var params = { tables: [ table, table1 ] }; -
データバージョン範囲を設定します。指定された範囲内のデータのみが返されます。
// バージョン範囲を現在時刻から過去 24 時間に設定します table.timeRange = { startTime: (Date.now() - 86400 * 1000).toString(), endTime: Date.now().toString() } -
読み取る属性列を指定します。
table.columnsToGet = ['col2']