json merge是業務常用的功能,例如網絡爬蟲,更新合并新爬到的内容。
postgresql 9.5 對json的類型進行了非常大的功能增強,例如支援合并,按key删除,更新key value等。
<a href="https://www.postgresql.org/docs/9.5/static/functions-json.html">https://www.postgresql.org/docs/9.5/static/functions-json.html</a>
以合并為例
以右邊的值為準,支援嵌套值的合并。
如果你用的是postgresql9.5 以前的版本,使用jsonbx這個插件也能擴充json的功能.
<a href="http://pgxn.org/search?q=jsonbx&in=extensions">http://pgxn.org/search?q=jsonbx&in=extensions</a>
另外需要提醒一下,因為json合并大多數情況下是會導緻合并後的json更大的,是以使用資料庫存儲時,即使不是多版本的資料庫也可能造成行遷移,導緻索引的變化。
ps:
阿裡雲rds pg 9.4的使用者,如果要使用以上擴充的jsonb功能,在對應執行個體的對應資料庫中建立這個插件即可。
create extension jsonbx;
如果建立這個擴充報 插件不存在的錯誤,說明您的pg小版本可能較低,需要先在阿裡雲rds控制台更新一下對應執行個體的版本,然後再建立jsonbx插件。