Use JSON.ARRINDEX to find the first position of a value inside the arrays a path selects.
The value is JSON text and is compared for exact equality, so 1 does not match "1". The optional start and stop bound the search: start is inclusive, stop is exclusive, both may be negative to count from the end of the array, and 0 for stop means "to the end". The reply is the index of the first match or -1 when the value is not present, with one result per array the path matched.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
key | Yes | No | JSON document key. |
path | Yes | No | Path selecting arrays. |
value | Yes | No | Valid JSON value to locate. |
start | No | No | Inclusive starting index. |
stop | No | No | Exclusive ending index. |
Important points#
- Raw TCP examples pass JSON values as valid JSON text. Typed Upstash SDK helpers serialize native objects and values for you.
- Paths beginning with
$use JSONPath and can match multiple values, so many JSON commands return an array of per-match results.
Response#
The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.
| Protocol | Reply |
|---|---|
| RESP2 | Array of integer indexes or null values, one per matched path |
| RESP3 | Array of integer indexes or null values, one per matched path |
Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.
Examples#
TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.