Bisakah DynamoDB menyimpan array?

Ya. DynamoDB menyimpan array memakai tipe List (L) — koleksi terurut yang bisa memuat tipe campuran termasuk string, angka, boolean, null, map, dan list bersarang. Untuk koleksi tanpa urutan berisi nilai unik, ia juga menyediakan String, Number, dan Binary Set. Tidak ada batas jumlah elemen selama item-nya tetap di bawah 400 KB.

List (array terurut)

Sebuah List mempertahankan urutan serta mengizinkan duplikat dan tipe campuran. Ia memetakan langsung ke array JSON dan bisa bersarang (list berisi map, list berisi list) sampai 32 tingkat.

Batas terdokumentasi itu ikut menghitung nilai di dasarnya. Membungkus sebuah string dalam 31 kontainer L bersarang berhasil ditulis; kontainer ke-32 gagal, dan batas yang sama berlaku untuk M bersarang:

ValidationException: Nesting Levels have exceeded supported limits:
Attributes in the item have nested levels beyond supported limit

Set (nilai unik)

  • String Set (SS), Number Set (NS), Binary Set (BS) menyimpan nilai unik bertipe tunggal, tanpa urutan.
  • Sebuah set tidak boleh kosong (itu memicu ValidationException).

Pakai Set ketika keanggotaan dan keunikan yang penting; pakai List ketika urutan atau tipe campuran yang penting.

Set menyusun ulang dan menolak duplikat

Simpan ["zulu", "alpha", "mike"] sebagai String Set dan ia terbaca kembali sebagai ["alpha", "mike", "zulu"]. Sebuah Number Set mengurutkan secara numerik: ["30", "4", "100"] kembali sebagai ["4", "30", "100"]. Nilai yang sama dalam sebuah List kembali dalam urutan seperti Anda menulisnya.

Anggota yang berulang adalah kegagalan keras, bukan penghapusan duplikat yang senyap:

ValidationException: Input collection contains duplicates

Dan karena sebuah set tidak pernah boleh kosong, melakukan DELETE pada anggota terakhirnya menghapus atributnya. Kode yang mengharapkan set kosong justru mendapat atribut yang hilang, jadi ujilah dengan attribute_exists, bukan dengan panjang nol.

Berapa banyak elemen yang sebenarnya muat

"Tidak ada batas jumlah elemen" itu akurat dan sulit ditindaklanjuti. Jawaban yang bisa dipakai adalah 400 KB dibagi biaya satu elemen: sebuah list membawa overhead 3 byte, lalu ukuran tiap elemen ditambah 1 byte.

Untuk string UUID 36 karakter di bawah partition key satu karakter, angkanya mendarat di 11.070 elemen. Menambahkan yang ke-11.071 ditolak:

ValidationException: Item size has exceeded the maximum allowed size

Kalkulator ukuran item menakar kedua item itu di 409.599 dan 409.636 byte, jadi ia menarik garis 409.600 byte persis di tempat mesinnya menariknya. Menulis yang lebih besar menghabiskan 400 write unit.

Pelajari lebih lanjut

Lihat tipe data DynamoDB dan konversikan struktur bersarang dengan konverter JSON. Unduh DynoTable untuk menyunting atribut list dan set.

Referensi

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

Diukur dan direproduksi 2026-07-28 terhadap DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 — jumlah elemen, batas penyarangan, perjalanan bolak-balik set, dan string error di atas adalah keluaran mesin, bukan perkiraan. Rumusan string error-nya bisa berbeda di layanan live.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.