¿Puede DynamoDB almacenar arrays?
Sí. DynamoDB almacena arrays con el tipo List (L) — una colección ordenada que puede contener tipos mixtos, incluidos cadenas, números, booleanos, nulos, mapas y listas anidadas. Para colecciones sin orden de valores únicos, ofrece además conjuntos de cadenas, números y binarios. No hay límite en el número de elementos mientras el Item se mantenga por debajo de 400 KB.
Listas (arrays ordenados)
Una List conserva el orden y admite duplicados y tipos mixtos. Se corresponde directamente con un array JSON y puede anidarse (listas de mapas, listas de listas) hasta 32 niveles de profundidad.
Ese límite documentado cuenta el valor del fondo. Envolver una cadena en 31 contenedores L anidados se escribe sin problema; un contenedor número 32 falla, y el mismo límite se aplica a las M anidadas:
ValidationException: Nesting Levels have exceeded supported limits:
Attributes in the item have nested levels beyond supported limitConjuntos (valores únicos)
- String Set (SS), Number Set (NS) y Binary Set (BS) contienen valores únicos de un solo tipo, sin orden.
- Un conjunto no puede estar vacío (eso lanza una
ValidationException).
Usa un conjunto cuando importen la pertenencia y la unicidad; usa una List cuando importen el orden o los tipos mixtos.
Los conjuntos reordenan y rechazan duplicados
Guarda ["zulu", "alpha", "mike"] como String Set y se lee de vuelta como ["alpha", "mike", "zulu"]. Un Number Set ordena numéricamente: ["30", "4", "100"] devuelve ["4", "30", "100"]. Esos mismos valores en una List vuelven en el orden en que los escribiste.
Un miembro repetido es un fallo duro, no una deduplicación silenciosa:
ValidationException: Input collection contains duplicatesY como un conjunto nunca puede estar vacío, hacer DELETE de su último miembro elimina el atributo. El código que espera recibir un conjunto vacío recibe en su lugar un atributo que falta, así que comprueba con attribute_exists en vez de buscar longitud cero.
Cuántos elementos caben de verdad
"Sin límite de número de elementos" es exacto y difícil de aplicar. La respuesta útil es 400 KB dividido entre lo que cuesta un elemento: una lista lleva 3 bytes de sobrecarga, y luego el tamaño propio de cada elemento más 1 byte.
Para cadenas UUID de 36 caracteres bajo una clave de partición de un carácter, eso da 11.070 elementos. Añadir el 11.071 se rechaza:
ValidationException: Item size has exceeded the maximum allowed sizeLa calculadora de tamaño de Item dimensiona esos dos Items en 409.599 y 409.636 bytes, así que traza la línea de los 409.600 bytes exactamente donde la traza el motor. Escribir el más grande cuesta 400 unidades de escritura.
Profundiza
Mira tipos de datos de DynamoDB y convierte estructuras anidadas con el conversor de JSON. Descarga DynoTable para editar atributos de tipo lista y conjunto.
Referencias
- 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
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.
Medido y reproducido el 2026-07-28 contra DynamoDB Local 3.3.0 mediante @aws-sdk/client-dynamodb 3.1095.0 — el número de elementos, el límite de anidamiento, las idas y vueltas de los conjuntos y las cadenas de error de arriba son salida del motor, no estimaciones. La redacción de las cadenas de error puede diferir en el servicio en vivo.