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
------------------
tHere, 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