Introduction to NoSQL
Jake Roach
Data Engineer
SELECT
parent_meta -> 'jobs' ->> 'P1' AS jobs_P1,
parent_meta -> 'jobs' ->> 'P2' AS jobs_P2
FROM student;
$$
To make querying nested data easier:
#>
and #>>
operatorsjson_extract_path
and json_extract_path_text
functions#>
operator
null
if path does not exist#>>
returns field as text$$
SELECT
parent_meta #> '{jobs}' AS jobs,
parent_meta #> '{jobs, P1}' AS jobs_P1,
parent_meta #> '{jobs, income}' AS income,
parent_meta #>> '{jobs, P2}' AS jobs_P2
FROM student;
json_extract_path
null
if path does not existjson_extract_path_text
$$
SELECT
json_extract_path(parent_meta, 'jobs') AS jobs,
json_extract_path(parent_meta, 'jobs', 'P1') AS jobs_P1,
json_extract_path(parent_meta, 'jobs', 'income') AS income,
json_extract_path_text(parent_meta, 'jobs', 'P2') AS jobs_P2,
FROM student;
SELECT
<column-name> #> '{<field-name>}' AS <alias>,
<column-name> #> '{<field-name>, <field-name>}' AS <alias>,
<column-name> #>> '{<field-name>, <field-name>}' AS <alias>
FROM <table-name>;
SELECT
json_extract_path(<column-name>, '<field-name>') AS <alias>,
json_extract_path(<column-name>, '<field-name>', '<field-name>') AS <alias>,
json_extract_path_text(<column-name>, '<field-name>', '<field-name>') AS <alias>
FROM <table-name>;
Introduction to NoSQL