jsquery
用于内省 JSONB 数据类型的查询类型
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
jsquery | 1.2 | FEAT | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2770 | jsquery | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | pgbson pgjq pg_jsonschema jsonschema pg_projection documentdb mongo_fdw jsonb_plperl jsonb_plpython3u jsonb_plperlu |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.2 | 1817161514 | jsquery | - |
| RPM | PGDG | 1.2 | 1817161514 | jsquery_$v | - |
| DEB | PGDG | 1.2 | 1817161514 | postgresql-$v-jsquery | - |
安装
您可以直接安装 jsquery 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
JsQuery 提供了一种 JSONB 数据查询语言,类似于 tsquery 之于全文搜索的作用。它提供了一种简洁的方式来搜索嵌套对象和数组,并支持通过 GIN 建立索引。
运算符
| 运算符 | 描述 |
|---|---|
@@ | 匹配运算符:测试 jsonb 值是否匹配 jsquery 表达式 |
查询语法
表达式遵循 路径 运算符 值 的模式:
二元运算符:
=(相等)、>、>=、<、<=(比较)IN(列表成员)&&(重叠)、@>(包含)、<@(被包含)
一元运算符:
= *(存在性检查)IS ARRAY、IS NUMERIC、IS OBJECT、IS STRING、IS BOOLEAN(类型检查)
路径表达式
| 符号 | 含义 |
|---|---|
# | 任意数组索引 |
#N | 特定数组索引 N |
% | 任意对象键 |
* | 任意键/索引序列 |
@# | 数组/对象长度 |
$ | 整个文档 |
“全部"语义(所有元素必须匹配):
#:– 所有数组元素%:– 所有对象键*:– 所有嵌套路径
示例
简单值匹配:
SQL
逻辑组合:
SQL
数组元素匹配(查找同时满足两个条件的数组元素):
SQL
对象键范围匹配:
SQL
GIN 索引
两种运算符类适用于不同的查询模式:
SQL
索引使用的优化提示:
SQL
通过 CHECK 约束进行模式校验
SQL