PostgreSQL jsonb_path_match() Function
The PostgreSQL jsonb_path_match()
function returns the result of executing a JSON path assertion against a specified JSON value.
jsonb_path_match()
Syntax
This is the syntax of the PostgreSQL jsonb_path_match()
function:
jsonb_path_match(
target JSONB
, path JSONPATH
[, vars JSONB
[, silent BOOLEAN]]
) -> BOOLEAN
Parameters
target
-
Required. The JSONB value to check.
path
-
Required. The JSON path assertion to perform.
vars
-
Optional. The variable values used in the path.
silent
-
Optional. If this parameter is provided and it is
true
, the function suppresses the same errors as the@?
and@@
operators.
Return value
The PostgreSQL jsonb_path_match()
function returns a boolean value that is the result of a JSON path assertion performed on a specified JSON value. t
indicates that the specified JSON value matches the specified JSON path, and f
indicates that the specified JSON value does not match the specified JSON path.
If any parameter is NULL, the jsonb_path_match()
function will return NULL.
jsonb_path_match()
Examples
The following example shows how to use the PostgreSQL jsonb_path_match()
function to check if a JSON array contains a value greater than 1.
SELECT jsonb_path_match('[1, 2, 3]', 'exists($[*] ? (@ > 1))');
jsonb_path_match
------------------
t
Here, we use path $[*] ? (@ > 2)
to get items greater than 2 in the JSON array [1, 2, 3]
. Instead, exists($[*] ? (@ > 1))
check if the JSON array contains items greater than 2. The statement is the same as jsonb_path_exists()
:
SELECT jsonb_path_exists('[1, 2, 3]', '$[*] ? (@ > 1)');
jsonb_path_exists
-------------------
t