Abfrage nach Array-Elementen innerhalb des JSON-Typs

Ich versuche zu testen, die json Typ in PostgreSQL 9.3.
Ich habe eine json Spalte namens data in einer Tabelle namens reports. Das JSON sieht wie folgt aus:

{
  "objects": [
    {"src":"foo.png"},
    {"src":"bar.png"}
  ],
  "background":"background.png"
}

Ich würde gerne die Abfrage der Tabelle, die für alle Berichte, die mit dem 'src' Wert in den 'objects' array. Zum Beispiel ist es möglich, die Abfrage der DB für alle Berichte, die übereinstimmung 'src' = 'foo.png'? Ich erfolgreich schrieb eine Abfrage, kann sich mit der "background":

SELECT data AS data FROM reports where data->>'background' = 'background.png'

Aber da "objects" hat ein array von Werten, ich kann nicht scheinen, etwas zu schreiben, das funktioniert. Ist es möglich, die Abfrage der DB für alle Berichte, die übereinstimmung 'src' = 'foo.png'? Ich habe mir durch diese Quellen aber kann immer noch nicht bekommen:

Ich habe auch versucht Dinge wie diese, aber ohne Erfolg:

SELECT json_array_elements(data->'objects') AS data from reports
WHERE  data->>'src' = 'foo.png';

Ich bin kein SQL-Experte, also weiß ich nicht was ich falsch mache.

InformationsquelleAutor der Frage pacothelovetaco | 2014-03-29

Schreibe einen Kommentar