Arrays y mapas
Un array es una lista ordenada y un map es un objeto estructurado. Ambos se
almacenan como jsonb, excepto un array de un tipo primitivo, que se convierte en un
array nativo de Postgres (text[], integer[]) para que la base de datos pueda indexar y realizar
búsquedas dentro de él.
Propiedades de Array
Sección titulada «Propiedades de Array»Repetición simple
Sección titulada «Repetición simple»Usa of para definir una lista repetible de elementos.
tags: { type: "array", name: "Tags", of: { type: "string" }}Subida de múltiples archivos
Sección titulada «Subida de múltiples archivos»Un array cuyo of contiene el bloque storage es una subida de múltiples archivos — consulta
Subidas de archivos.
Editor de bloques
Sección titulada «Editor de bloques»Usa oneOf para crear un editor de bloques con múltiples tipos de contenido. Cada clave crea un tipo de tarjeta que los usuarios pueden seleccionar.
content: { type: "array", name: "Content", oneOf: { properties: { text: { type: "map", properties: { body: { type: "string", name: "Text", admin: { markdown: true } } } }, image: { type: "map", properties: { src: { type: "string", name: "Image", storage: { storagePath: "content" } }, caption: { type: "string", name: "Caption" } } } } }}Opciones de Array
Sección titulada «Opciones de Array»| Propiedad | Tipo | Descripción |
|---|---|---|
of |
Property | Property[] |
Esquema de propiedad para los elementos del array |
oneOf |
object |
Array de objetos tipados con múltiples tipos discriminadores. Acepta properties, y opcionalmente propertiesOrder, typeField (por defecto "type") y valueField (por defecto "value") |
columnType |
"json" | "jsonb" | "text[]" | "integer[]" | "boolean[]" | "numeric[]" |
La columna de la base de datos. Un of primitivo toma por defecto el array nativo de Postgres correspondiente; cualquier otro toma jsonb |
admin.expanded |
boolean |
Si el campo debe estar expandido inicialmente (por defecto: true) |
admin.minimalistView |
boolean |
Muestra las propiedades secundarias directamente sin un panel extensible |
admin.sortable |
boolean |
Si los elementos se pueden reordenar (por defecto: true) |
admin.canAddElements |
boolean |
Si se pueden agregar nuevos elementos (por defecto: true) |
Propiedades de Map
Sección titulada «Propiedades de Map»Grupo (estructurado)
Sección titulada «Grupo (estructurado)»Usa properties para definir un objeto estructurado con campos con nombre.
address: { type: "map", name: "Address", properties: { street: { type: "string", name: "Street" }, zip: { type: "string", name: "Postal code" } }}Clave-valor (formato libre)
Sección titulada «Clave-valor (formato libre)»Establece keyValue: true para renderizar un editor de pares clave-valor arbitrarios.
metadata: { type: "map", name: "Key value", keyValue: true}Opciones de Map
Sección titulada «Opciones de Map»| Propiedad | Tipo | Descripción |
|---|---|---|
properties |
Properties |
Registro de propiedades incluidas en el map |
propertiesOrder |
string[] |
Claves ordenadas para el renderizado |
admin.previewProperties |
string[] |
Qué propiedades mostrar en la vista previa de la tabla |
admin.spreadChildren |
boolean |
Renderiza las propiedades secundarias como columnas separadas en la vista de tabla |
admin.minimalistView |
boolean |
Muestra las propiedades sin un panel contenedor |
admin.expanded |
boolean |
Si el campo debe estar expandido inicialmente (por defecto: true) |
keyValue |
boolean |
Renderiza como un editor de pares clave-valor arbitrarios. No es meramente visual a pesar de la redacción: indica que el map no tiene una estructura declarada, a partir de la cual se genera el esquema OpenAPI |
columnType |
"json" | "jsonb" |
La columna de la base de datos. Por defecto es jsonb |
Próximos pasos
Sección titulada «Próximos pasos»- Propiedades — todos los demás tipos de propiedades y las opciones que comparten
- Validación y condiciones — las reglas que se aplican a los elementos y a la lista en sí
- Subidas de archivos — un array de strings
storagees un campo para múltiples archivos