J'ai un certain JSON dans un champ dans mon Postgres 9.4 db et je veux trouver des lignes où le nom donné est une certaine valeur, où le champ est nommé model
et la structure JSON est la suivante:Interrogation d'un tableau dans un tableau avec requête Postgres JSONB
{
"resourceType": "Person",
"id": "8a7b72b1-49ec-43e5-bd21-bc62674d9875",
"name": [
{
"family": [
"NEWMAN"
],
"given": [
"JOHN"
]
}
]
}
J'ai donc essayé ceci: SELECT * FROM current WHERE model->'name' @> '{"given":["JOHN"]}';
(ainsi que d'autres hypothèses) mais qui ne correspondent pas aux données ci-dessus. Comment dois-je faire cela?
J'étais très excité, mais: « ne peut pas extraire des éléments d'un objet ». –
Cela signifie que la structure réelle de JSON est différente de celle décrite dans votre question. L'objet 'name' doit être un tableau dans chaque ligne. Vous pouvez [tester ici.] (Http://rextester.com/JDHIC62950) – klin
Ah! J'ai oublié de limiter la requête par resourceType. Merci - ça fonctionne. –