Kann DynamoDB Arrays speichern?

Ja. DynamoDB speichert Arrays über den List-Typ (L) — eine geordnete Sammlung, die gemischte Typen aufnehmen kann, darunter Strings, Zahlen, Booleans, Nulls, Maps und verschachtelte Listen. Für ungeordnete Sammlungen eindeutiger Werte gibt es außerdem String-, Number- und Binary-Sets. Es gibt keine Obergrenze für die Anzahl der Elemente, solange das Item unter 400 KB bleibt.

Listen (geordnete Arrays)

Eine Liste bewahrt die Reihenfolge und erlaubt Duplikate und gemischte Typen. Sie bildet direkt auf ein JSON-Array ab und lässt sich bis zu 32 Ebenen tief verschachteln (Listen von Maps, Listen von Listen).

Dieses dokumentierte Limit zählt den Wert ganz unten mit. Einen String in 31 verschachtelte L-Container zu packen schreibt sauber; ein 32. Container scheitert, und dieselbe Grenze gilt für verschachtelte M:

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

Sets (eindeutige Werte)

  • String Set (SS), Number Set (NS), Binary Set (BS) halten eindeutige Werte eines Typs, ungeordnet.
  • Ein Set darf nicht leer sein (das löst eine ValidationException aus).

Nimm ein Set, wenn Mitgliedschaft und Eindeutigkeit zählen; nimm eine Liste, wenn Reihenfolge oder gemischte Typen zählen.

Sets sortieren um und lehnen Duplikate ab

Speicherst du ["zulu", "alpha", "mike"] als String Set, liest es sich als ["alpha", "mike", "zulu"] zurück. Ein Number Set sortiert numerisch: ["30", "4", "100"] kommt als ["4", "30", "100"] zurück. Dieselben Werte in einer Liste kommen in der Reihenfolge zurück, in der du sie geschrieben hast.

Ein wiederholtes Element ist ein harter Fehler und keine stille Entdopplung:

ValidationException: Input collection contains duplicates

Und da ein Set nie leer sein kann, entfernt ein DELETE seines letzten Elements das Attribut. Code, der ein leeres Set zurückerwartet, bekommt stattdessen ein fehlendes Attribut — prüfe also mit attribute_exists statt auf Länge null.

Wie viele Elemente tatsächlich hineinpassen

„Keine Obergrenze für die Anzahl der Elemente" stimmt und hilft wenig. Die nutzbare Antwort ist 400 KB geteilt durch das, was ein Element kostet: Eine Liste trägt 3 Bytes Overhead, dann kommt die Größe jedes Elements plus 1 Byte.

Für 36 Zeichen lange UUID-Strings unter einem einzeichigen Partition Key landet das bei 11.070 Elementen. Ein 11.071. wird abgelehnt:

ValidationException: Item size has exceeded the maximum allowed size

Der Item-Size-Rechner beziffert diese beiden Items mit 409.599 und 409.636 Bytes — er zieht die 409.600-Byte-Grenze also genau dort, wo die Engine sie zieht. Das größere zu schreiben kostet 400 Schreibeinheiten.

Tiefer einsteigen

Siehe DynamoDB-Datentypen und konvertiere verschachtelte Strukturen mit dem JSON-Konverter. Lade DynoTable herunter, um List- und Set-Attribute zu bearbeiten.

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Am 2026-07-28 gegen DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 gemessen und reproduziert — die Elementanzahl, die Verschachtelungsgrenze, die Set-Roundtrips und die Fehler-Strings oben sind Engine-Ausgabe, keine Schätzungen. Die Formulierung der Fehler-Strings kann auf dem Live-Dienst abweichen.

Mit DynamoDB ohne die Console arbeiten

Ein schneller DynamoDB-Desktop-Client, der das echte SQL ausführt, das DynamoDB nicht kann — JOINs, GROUP BY, Aggregationen — mit visueller Bearbeitung und einem KI-Agenten auf deinen eigenen Bedrock-Schlüsseln.

30 Tage kostenlos testen, keine Kreditkarte — danach der Kostenlos-Tarif ohne Zeitlimit.