DynamoDBClientの読み込みコマンドは、GetItemCommand、QueryCommand、ScanCommand、BatchGetItemCommand があります。
参考
QueryCommand
参考
ここでは、以下のサンプルで書き込んだデータを読み込みます。
例
import { DynamoDBClient, QueryCommand, QueryCommandInput } from '@aws-sdk/client-dynamodb'; interface TestItem { pk: string; datetime: string; count: number; } const getDynamoDBTableName = () => { return 'dynamodb-test-table'; } const getDynamoDBClient = () => { const client = new DynamoDBClient({ region: 'ap-northeast-1', }); return client; } const getItem = async () => { const tableName = getDynamoDBTableName(); const client = getDynamoDBClient(); const params: QueryCommandInput = { TableName: tableName, KeyConditionExpression: 'pk = :PK AND ( #datetime BETWEEN :sortKeyBegin AND :sortKeyEnd )', // KeyConditionExpressionのプレースフォルダの値を指定 ExpressionAttributeValues: { ':PK': { S: '東京都新宿区2024-05-01'}, ':sortKeyBegin': { S: '2024-05-01T03:00:00.000Z' }, ':sortKeyEnd': { S: '2024-05-01T05:00:00.000Z' }, }, // DynamoDBではカラム名が予約後と同じ場合、別の名称に置き換える必要がある。 // 置き換え後の名称の先頭は必ず "#" になっている必要がある。 // これはSQLのASのようなもの。カラム名のエスケープは無い。 ExpressionAttributeNames: { '#datetime': 'datetime', '#count': 'count' }, // 取得データに含まれるカラムを制限する場合は、ProjectionExpressionで指定する。 // カラム名は予約後の場合、ExpressionAttributeNamesで置き換えた名称を指定する。 ProjectionExpression: '#datetime, #count', }; try { const command = new QueryCommand(params); const result = await client.send(command); return result; } catch (err) { console.log(err); throw err; }; } const readItems = async () => { const result = await getItem(); console.log("result: %o", result); console.log(result.Items); } /** * 実行方法 * npx ts-node others\samples\ReadSample.ts * */ (async () => { await readItems(); })();