PostgreSQLのJSON型を使ってみた
ちょいとPostgreSQLのJSON型を使ってみたら結構便利だったので紹介します。
できること
もちろん、登録可能なデータはJSONだけなのですが、
- JSONから値をとりだす
- JSON内の値を利用してwhereやorder、groupなどがかけられる
といったことが可能です。
使い方
id | json_data |
---|---|
1 | "{"point":240,"name":"test","join":{"name":"jointest"}}" |
2 | "{"point":250,"name":"test2","join":{"name":"jointest2"}}" |
3 | "{"point":260,"name":"test3","join":{"name":"jointest3"}}" |
4 | "{"point":270,"name":"test4","join":{"name":"jointest4"}}" |
5 | "{"point":280,"name":"test5","join":{"name":"jointest5"}}" |
6 | "{"point":290,"name":"test6","join":{"name":"jointest6"}}" |
こういったデータがあったとして
①pointデータの取得
SELECT
json_data->>'point'
FROM
json_test
②join->nameがjointest2のもの
SELECT
*
FROM
json_test
WHERE
(json_data->>'join')::json->>'name' = 'jointest2'
まとめ
普通のカラムと同じように扱えるので、かなり便利です!
ログ情報をまとめて配列で突っ込んでおきたいけど、そのログ情報に検索などしたい場合などに活用できると思います!
※まぁあまり乱用するようなものではないとは思いますが・・・