JSON.ARRINDEX
Busca la primera aparición de un valor JSON escalar en las matrices de la ruta.
Los errores fuera de rango se tratan redondeando el índice al principio y al final de la matriz.
Si inicio > fin, devuelve -1 (no encontrado).
Sintaxis
JSON.ARRINDEX <key> <path> <json-scalar> [start [end]]
key (obligatorio): una clave de Valkey o Redis OSS del tipo de documento JSON.
ruta (obligatorio): una ruta JSON.
json-scalar (obligatorio): el valor escalar para buscar . El escalar JSON se refiere a valores que no son objetos ni matrices. Es decir, cadena, número, Booleano y nulo son valores escalares.
inicio (opcional): el índice de inicio, inclusivo. Toma 0 como valor predeterminado si no se proporciona.
final (opcional): el índice final, exclusivo. Toma 0 como valor predeterminado si no se proporciona, lo que significa que se incluye el último elemento. 0 o -1 significa que se incluye el último elemento.
Return
Si la ruta es de sintaxis mejorada:
Matriz de números enteros. Cada valor es el índice del elemento coincidente de la matriz en la ruta. El valor es -1 si no se encuentra.
-
Si un valor no es una matriz, su valor devuelto correspondiente es nulo.
Si la ruta es de sintaxis restringida:
Entero, el índice del elemento coincidente o -1 si no se encuentra.
-
Error
WRONGTYPEsi el valor de la ruta no es una matriz.
Ejemplos
Sintaxis de la ruta mejorada:
127.0.0.1:6379> JSON.SET k1 . '[[], ["a"], ["a", "b"], ["a", "b", "c"]]' OK 127.0.0.1:6379> JSON.ARRINDEX k1 $[*] '"b"' 1) (integer) -1 2) (integer) -1 3) (integer) 1 4) (integer) 1
Sintaxis de la ruta restringida:
127.0.0.1:6379> JSON.SET k1 . '{"children": ["John", "Jack", "Tom", "Bob", "Mike"]}' OK 127.0.0.1:6379> JSON.ARRINDEX k1 .children '"Tom"' (integer) 2