PostgreSQL jsonb_path_match() 函数使用指南
PostgreSQL jsonb_path_match()
函数返回一个 JSON 路径断言对一个指定的 JSON 值的执行结果。
jsonb_path_match()
语法
这是 PostgreSQL jsonb_path_match()
函数的语法:
jsonb_path_match(
target JSONB
, path JSONPATH
[, vars JSONB
[, silent BOOLEAN]]
) -> BOOLEAN
参数
target
- 必需的。 要检查的 JSONB 值。
path
- 必需的。 要执行的 JSON 路径断言。
vars
- 可选的。 路径中要用到的变量值。
silent
- 可选的。 如果提供了此参数,并且为
true
,该函数会像@?
和@@
操作符一样抑制相同的错误。
返回值
PostgreSQL jsonb_path_match()
函数返回一个布尔值,它是一个 JSON 路径断言对一个指定的 JSON 值的执行结果。 t
表示指定的 JSON 值与指定的 JSON 路径匹配, f
表示指定的 JSON 值与指定的 JSON 路径不匹配。
如果任意一个参数是 NULL,jsonb_path_match()
函数将返回 NULL。
jsonb_path_match()
示例
下面的示例展示了如何使用 PostgreSQL jsonb_path_match()
函数检查在一个 JSON 数组中是否包含大于 1 的值。
SELECT jsonb_path_match('[1, 2, 3]', 'exists($[*] ? (@ > 1))');
jsonb_path_match
------------------
t
这里,我们使用路径 $[*] ? (@ > 2)
来获取 JSON 数组 [1, 2, 3]
中的大于 2 的项。 而 exists($[*] ? (@ > 1))
检查 JSON 数组中是否包含大于 2 的项。 该语句与下面的 jsonb_path_exists()
相同:
SELECT jsonb_path_exists('[1, 2, 3]', '$[*] ? (@ > 1)');
jsonb_path_exists
-------------------
t