TableStoreでテーブル内の全てのオブジェクトを取得する方法
プライマリキーに対してgetRange()
メソッドを実行します。この時プライマリキーの範囲をTableStore.INF_MIN
以上TableStore.INF_MAX
にすることで全てのオブジェクトを取得することができます。
実はドキュメント通り。
複数行操作 - 開発ガイド| Alibaba Cloud ドキュメントセンター
const TableStore = require('tablestore') const Long = TableStore.Long const instanceName = 'teststorage' const client = new TableStore.Client({ accessKeyId: "xxxxxxxxxxxxxx", secretAccessKey: "xxxxxxxxxxxxxxxxxxxxxxxxx", endpoint: `https://${instanceName}.cn-hangzhou.ots.aliyuncs.com`, instancename: instanceName, }) const params = { tableName: "locations", direction: TableStore.Direction.FORWARD, inclusiveStartPrimaryKey: [{ "uuid": TableStore.INF_MIN }], exclusiveEndPrimaryKey: [{ "uuid": TableStore.INF_MAX }], limit: 50 } client.getRange(params, function (err, data) { if (err) { console.log('error:', err) return } console.log('success:', data) console.log(data.rows[0]) })
data.rows
に全てのオブジェクトが入っています。
$ node getRange.js success: { consumed: { capacity_unit: { read: 1, write: 0 } }, rows: [ { primaryKey: [Array], attributes: [Array] }, { primaryKey: [Array], attributes: [Array] }, { primaryKey: [Array], attributes: [Array] } ], next_start_primary_key: null, next_token: null, RequestId: '000570e0-97c0-f4e2-697d-da0b4a4e7184' } { primaryKey: [ { name: 'uuid', value: '5591f4f4f7088729' } ], attributes: [ { columnName: 'created_at', columnValue: 1531287325266, timestamp: [Int64] }, { columnName: 'mesh_code', columnValue: 52354000, timestamp: [Int64] } ] }