Consulta de elementos de matriz dentro del tipo JSON
Estoy tratando de probar eljson
escriba PostgreSQL 9.3.
tengo unjson
columna llamadadata
en una mesa llamadareports
. El JSON se parece a esto:
{
"objects": [
{"src":"foo.png"},
{"src":"bar.png"}
],
"background":"background.png"
}
Me gustaría consultar en la tabla todos los informes que coincidan con el valor 'src' en la matriz 'objetos'. Por ejemplo, ¿es posible consultar en la base de datos todos los informes que coincidan?'src' = 'foo.png'
? Escribí con éxito una consulta que puede coincidir con"background"
:
SELECT data AS data FROM reports where data->>'background' = 'background.png'
Pero desde"objects"
tiene una variedad de valores, parece que no puedo escribir algo que funcione. ¿Es posible consultar la base de datos para todos los informes que coinciden'src' = 'foo.png'
? He revisado estas fuentes pero aún no puedo obtenerlo:
También he intentado cosas como esta, pero fue en vano:
SELECT json_array_elements(data->'objects') AS data from reports
WHERE data->>'src' = 'foo.png';
No soy un experto en SQL, así que no sé qué estoy haciendo mal.