blog of faywong

备案号: 浙ICP备2025185971号

  menu
41 文章
0 浏览
0 当前访客
ღゝ◡╹)ノ❤️

Nosql in postgresql

PostgrepSQL 9.4开始支持了jsonb数据类型,从而支持了一部分nosql特性。今天使用了下,简要记录下:

记得在pgadmin中验证下postgresql的版本号:


SELECT version();

确认是9.4以上。

确认之后可以在SQL终端继续感受下:

SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::json;

创建一个jsonb类型的字段:


CREATE TABLE mobile_analysis
(id serial PRIMARY KEY,
datadoc jsonb,
create_at TIMESTAMP WITH TIME ZONE default current_timestamp);

其中datadoc是我想存为json格式的字段的名称,为了支持后续的检索,为其创建索引:


CREATE INDEX idx_mobile_analysis ON mobile_analysis USING gin (datadoc jsonb_path_ops);

其中的jsonb_path_ops是为了支持对jsonb字段的值进行检索,条件过滤(比如包含有特定的key-value对的记录)所必需的。

插入一条测试数据:


INSERT INTO mobile_analysis(datadoc)
VALUES ('{"a": 1, "b":2, "d": "string_val"}');

通过包含条件查询之:


SELECT * FROM mobile_analysis WHERE datadoc @> '{"a":1}'

更多的关于json/jsonb类型的函数和操作符的资料请见这里。


标题:Nosql in postgresql
作者:faywong8888
地址:https://blog.fay.wang/articles/2025/08/10/1754806336446.html