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插件。