JSON.ARRINDEX
          
        
        
        
        
        
        
        JSON.ARRINDEX key path value [start [stop]]
- Available in:
- Redis Open Source / JSON 1.0.0
- Time complexity:
- O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key
- ACL categories:
- 
              
                @json,@read,@slow,
Search for the first occurrence of a JSON value in an array
Required arguments
key
 
is key to parse.
path
 
is JSONPath to specify.
value
 
is value to find its index in one or more arrays.
'"silver"'. For more detailed use, see Examples.Optional arguments
start
 
is inclusive start value to specify in a slice of the array to search. Default is 0.
stop
 
is exclusive stop value to specify in a slice of the array to search, including the last element. Default is 0. Negative values are interpreted as starting from the end.
-1.Examples
Find the specific place of a color in a list of product colors
Create a document for noise-cancelling headphones in black and silver colors.
redis> JSON.SET item:1 $ '{"name":"Noise-cancelling Bluetooth headphones","description":"Wireless Bluetooth headphones with noise-cancelling technology","connection":{"wireless":true,"type":"Bluetooth"},"price":99.98,"stock":25,"colors":["black","silver"]}'
OKAdd color blue to the end of the colors array. JSON.ARRAPEND returns the array's new size.
redis> JSON.ARRAPPEND item:1 $.colors '"blue"'
1) (integer) 3Return the new length of the colors array.
redis> JSON.GET item:1
"{\"name\":\"Noise-cancelling Bluetooth headphones\",\"description\":\"Wireless Bluetooth headphones with noise-cancelling technology\",\"connection\":{\"wireless\":true,\"type\":\"Bluetooth\"},\"price\":99.98,\"stock\":25,\"colors\":[\"black\",\"silver\",\"blue\"]}"Get the list of colors for the product.
redis> JSON.GET item:1 '$.colors[*]'
"[\"black\",\"silver\",\"blue\"]"Insert two more colors after the second color. You now have five colors.
redis> JSON.ARRINSERT item:1 $.colors 2 '"yellow"' '"gold"'
1) (integer) 5Get the updated list of colors.
redis> JSON.GET item:1 $.colors
"[[\"black\",\"silver\",\"yellow\",\"gold\",\"blue\"]]"Find the place where color silver is located.
redis> JSON.ARRINDEX item:1 $..colors '"silver"'
1) (integer) 1Return information
With $-based path argument: Array reply of integer replies or null replies, where each element is the first position in the array, -1 if unfound, or null if the matching value is not an array.
With .-based path argument: Integer reply representing the first position in the array, -1 if unfound, or null reply if the matching value is not an array.
See also
JSON.ARRAPPEND | JSON.ARRINSERT