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 limitSet (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 duplicatesDan 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 sizeKalkulator 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
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
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.