NoSQL入門
Jake Roach
Data Engineer

-> 演算子
->> 演算子
$$
SELECT
parent_meta -> 'guardian' AS guardian
parent_meta ->> 'status' AS status
FROM student;

ネストした JSON オブジェクトをクエリするには:
-> と ->> を組み合わせる$$
SELECT
parent_meta -> 'jobs' ->> 'P1' AS jobs_P1,
parent_meta -> 'jobs' ->> 'P2' AS jobs_P2
FROM student;

JSON 配列要素へのアクセス:
-> に INT を渡すと JSON で返す->> に INT を渡すとテキストで返す$$
SELECT
parent_meta -> 'educations' ->> 0
parent_meta -> 'educations' ->> 1
FROM student;

json_typeof 関数
-> と併用->> とは併用しない$$
SELECT
json_typeof(parent_meta -> 'jobs')
FROM students;
SELECT
-- トップレベルのフィールド
<column-name> -> '<field-name>' AS <alias>,
<column-name> ->> '<field-name>' AS <alias>,
-- ネストしたフィールド
<column-name> -> '<parent-field-name>' ->> '<nested-field-name>' AS <alias>,
-- 配列
<column-name> -> '<parent-field-name>' -> 0 AS <alias>,
<column-name> -> '<parent-field-name>' ->> 1 AS <alias>,
-- 型の取得
json_typeof(<column-name> -> <field-name>) AS <alias>
FROM <table-name>;
NoSQL入門