Ambil Semua Item dari DynamoDB di Node.js (AWS SDK v3)

Tidak ada "select all" di DynamoDB — membaca seluruh tabel berarti sebuah Scan yang Anda paginasi sampai habis. Setiap response membawa paling banyak 1 MB; Anda melakukan loop, memasukkan kembali LastEvaluatedKey sebagai ExclusiveStartKey, sampai tidak ada key yang kembali.

Code

import {DynamoDBClient, ScanCommand} from '@aws-sdk/client-dynamodb';

const client = new DynamoDBClient({region: 'us-east-1'});

const items = [];
let lastEvaluatedKey;

do {
  const response = await client.send(
    new ScanCommand({
      TableName: 'Music',
      ExclusiveStartKey: lastEvaluatedKey
    })
  );

  items.push(...(response.Items ?? []));
  lastEvaluatedKey = response.LastEvaluatedKey;
} while (lastEvaluatedKey);

console.log(`Table holds ${items.length} items`);

Penjelasan

  • Loop-nya adalah intinya — satu panggilan Scan TIDAK mengembalikan tabel; ia mengembalikan hingga 1 MB. Berhenti setelah response pertama adalah bug klasik "scan saya kehilangan item". Hanya LastEvaluatedKey yang tidak ada yang berarti Anda telah membaca semuanya.
  • Memoriitems menampung seluruh tabel. Untuk tabel besar, proses setiap halaman di dalam loop (tulis ke file, stream, agregasi) alih-alih menumpuknya.
  • Lebih cepat pada tabel besar: parallel scan — bagi pekerjaannya dengan Segment / TotalSegments: jalankan N worker, masing-masing men-scan segmennya sendiri dengan loop pagination-nya sendiri. Total biaya sama, waktu jam dinding jauh lebih rendah.
  • Biaya — scan penuh membaca (dan menagih) setiap byte dari setiap item, setiap kali Anda menjalankannya. Pangkas response dengan ProjectionExpression (lebih sedikit atribut yang dikembalikan — biaya baca tetap sama), dan jangan taruh scan pada hot path; itulah gunanya Query dan desain access-pattern.
  • Menyaring sekalian? Sebuah FilterExpression menjatuhkan item setelah dibaca (dan ditagih) — lihat Scan dengan filter.

Lakukan secara visual

Melihat sekilas sebuah tabel tidak perlu skrip: unduh DynoTable untuk menjelajah tabel apa pun dalam grid berpaginasi — ia melakukan paging melalui scan untuk Anda, tanpa loop yang bisa salah. Dan sebelum Anda scan-dan-bayar, kalkulator harga DynamoDB menunjukkan berapa biaya sebenarnya dari pembacaan penuh tabel Anda.

Contoh terkait

References

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bangun request ini secara visual

Susun operasi ini di DynamoDB Query Builder gratis — key condition, filter, index, Limit, urutan sortir, dan loop paginasi — lalu salin kembali sebagai program SDK v3, CLI, atau boto3 yang bisa dijalankan.

Buka DynamoDB Query Builder

Bekerja dengan DynamoDB tanpa Console

DynoTable adalah klien desktop yang cepat untuk DynamoDB — jelajahi tabel, jalankan query gaya SQL, dan edit Item secara lokal.