PostgreSQL
20 min de lecturaJSONB
Trabaja con datos JSON de forma eficiente
JSONB permite almacenar y consultar datos JSON de forma eficiente en PostgreSQL.
Ventajas de JSONB
Tabla con JSONB
sql
1CREATE TABLE productos (2 id SERIAL PRIMARY KEY,3 nombre TEXT NOT NULL,4 metadata JSONB5);6 7INSERT INTO productos (nombre, metadata) VALUES8('Laptop', '{"marca": "Dell", "ram": 16, "color": "gris", "puertos": ["USB-C", "HDMI"]}');Operadores JSONB
sql
1-- Acceder a campo2SELECT metadata->'marca' as marca FROM productos;3SELECT metadata->>'marca' as marca_texto FROM productos;4 5-- ¿Contiene clave?6SELECT * FROM productos WHERE metadata ? 'color';7 8-- ¿Contiene valor?9SELECT * FROM productos WHERE metadata @> '{"ram": 16}';10 11-- ¿Tiene alguna clave del array?12SELECT * FROM productos WHERE metadata ?| ARRAY['marca', 'color'];Índice GIN en JSONB
sql
1CREATE INDEX idx_productos_metadata ON productos USING GIN (metadata);Actualizar campos JSONB
sql
1-- Agregar campo2UPDATE productos 3SET metadata = metadata || '{"stock": 10}'::jsonb4WHERE id = 1;5 6-- Eliminar campo7UPDATE productos 8SET metadata = metadata - 'color'9WHERE id = 1;Sintaxis
Sintaxis
sql
1columna JSONBEjemplos
Consultar JSONB
Buscar productos por características
Ejemplo
sql
1SELECT nombre, metadata->>'marca' as marca2FROM productos3WHERE metadata @> '{"ram": 16}'4AND metadata->>'marca' = 'Dell';Resultado:
| nombre | marca | |--------|-------| | Laptop | Dell | | Monitor| Dell |