[PostgreSQL] JSON
๊ด๊ณํ DB๋ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์กฐ๊ธ๋ง ๋ฐ๋๋๋ผ๋ ์์ฒญ๋ ์๊ณ ๊ฐ ๋๋ฐ๋๋ค.
๋ฐ์ดํฐ๋ณ๋ก ํ
์ด๋ธ์ ๋ถ๋ฆฌํ๊ณ ... ํค๊ฐ์ ํตํด ์ฐ๊ด์ ์ํค๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง PostgreSQL์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ฐฌ JSON ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ๋ฉด ์ด๋ฅผ ์กฐ๊ธ ์ํํ ์ ์๋ค.
๋จผ์ , PostgreSQL์ JSON๊ณผ JSONB๋ผ๋ JSON ์ ์ฉ ํ์
์ ์ง์ํ๋ค.
์ด ๋์ ์ฝ๊ฐ์ ์ฐจ์ด๋ฅผ ์ ์ธํ๋ฉด ๊ฑฐ์ ๊ธฐ๋ฅ์ด ๊ฐ์๋ฐ, JSONB์ด ์ธ๋ฑ์ฑ๋ ๋๊ณ , ๋๋๊ฒ ๋ ๋ง์ ํธ์ด๋ค. ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด JSONB๋ฅผ ์ฐ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
JSONB ํ์
๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์๋ค.
JSON ํ
์คํธ ๋ฌธ์์ด์ ์บ์คํ
์ ๊ฐํ๋ ๊ฒ์ด๋ค.

๊ฐ ํ๋
json ๊ฐ ์ ๊ทผ ์ฐ์ฐ์๋ก๋ ->์ ->>๊ฐ ์ ๊ณต๋๋ค. ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์๋ ์ธ๋ฑ์ค๋ ํค๊ฐ ํ ์คํธ๊ฐ ๋ค์ด๊ฐ๋ค.

->๋ jsonb์ด๋ json์ ๋ฐํํ๊ณ , ->>๋ ๋ฌธ์์ด๋ก ๋ฐํํ๋ค.
->>๋ ์ซ์๊ฐ ๋ค์ด์์ด๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค๋ ์ ์ ์ ์ํ๋ค.
JSON ๋ณํฉ
๋ฌธ์์ด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, || ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด JSON ํ์ ๋ผ๋ฆฌ ํฉ์น ์ ์๋ค.

๊ฐ ์ญ์
๊ฐ ์ญ์ ๋ ๋งค์ฐ ์ฝ๋ค.
๊ทธ๋ฅ ํค๊ฐ ํ
์คํธ๋ก ๋บ์
์ ํ๋ฉด ๋๋ค!

๊ฐ์ฒด ๊ตฌ์กฐ ๊น์ํ ๋ค์ด์๋ ๊ฐ์ ๊ฒฝ์ฐ, #- ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ, ํค๊ฐ์ ์ค์ฒฉํด ์ญ์ ๋ฅผ ํ๋ค.

๊ฐ ์ฝ์
๊ฐ์ ์ฝ์
ํ ๋๋ jsonb_set์ด๋ jsonb_insert ๋ฑ์ ์ ์ฉ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
set์ ๋ฎ์ด์ฐ๊ธฐ๊น์ง ๊ฐ๋ฅํ๊ณ , insert๋ ์ ์ฝ์
์๋ง ์ ํจํ๊ฒ ๋์ํ๋ค.
๋๋ค ์์๋๋ก json ๊ฐ, ๊ฒ์ํจํด, ์ฝ์
๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ค.


๊ทธ๋ ๋ค.
์ด์ธ์๋ ์ฌ๋ฌ๊ฐ์ง ํจ์๋ค๊ณผ ๊ธฐ๋ฅ๋ค์ด ๋ง์ง๋ง, ์ผ๋จ์ ์ฌ๊ธฐ๊น์ง๋ง ์ ๋ฆฌํ๋ค.
์ฐธ์กฐ
https://www.postgresql.org/docs/9.3/functions-json.html
https://stackoverflow.com/questions/23490965/postgresql-remove-attribute-from-json-column
https://stackoverflow.com/questions/18209625/how-do-i-modify-fields-inside-the-new-postgresql-json-datatype