Spec-Zone.ru › Redis

JSON.ARRINDEX

JSON.ARRINDEX
Синтаксис
JSON.ARRINDEX key path value [start [stop]]
Доступно в:
Redis Stack / JSON 1.0.0
Сложность по времени:
O(N), когда путь вычисляется до одного значения, где N — размер массива; O(N), когда путь вычисляется до нескольких значений, где N — размер ключа

Поиск первого вхождения JSON-значения в массиве

Примеры

Обязательные аргументы

key

ключ для парсинга.

path

JSONPath для указания.

value

значение, для которого нужно найти индекс в одном или нескольких массивах.

Об использовании строк с командами JSON

Для указания строки как значения массива для индексации, оберните строку в двойные одинарные кавычки. Пример: '"silver"'. Для более подробного использования, см. Примеры.

Необязательные аргументы

start

начальное включительное значение для указания в срезе массива для поиска. По умолчанию 0.

stop

исключительное конечное значение для указания в срезе массива для поиска, включая последний элемент. По умолчанию 0. Отрицательные значения интерпретируются как отсчет с конца.

Об индексах за пределами диапазона

Индексы за пределами диапазона округляются до начала и конца массива. Обратный диапазон индексов (например, от 1 до 0) возвращает «не найдено» или -1.

Возвращаемое значение

Функция JSON.ARRINDEX возвращает массив целочисленных ответов для каждого пути, первая позиция в массиве каждого JSON-значения, соответствующего пути, -1 если не найдено в массиве, или nil, если соответствующее JSON-значение не является массивом. Дополнительную информацию об ответах см. в спецификации протокола сериализации Redis.

Примеры

Нахождение места цвета в списке цветов продукта

Создайте документ для беспроводных наушников с черным и серебряным цветами.

127.0.0.1:6379> 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"]}'
OK

Добавьте цвет blue в конец массива colors. JSON.ARRAPEND возвращает новый размер массива.

127.0.0.1:6379> JSON.ARRAPPEND item:1 $.colors '"blue"'
1) (integer) 3

Возвращает новую длину массива colors.

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\"]}"

Получите список цветов для продукта.

127.0.0.1:6379> JSON.GET item:1 '$.colors[*]'
"[\"black\",\"silver\",\"blue\"]"

Вставьте два дополнительных цвета после второго цвета. Теперь у вас пять цветов.

127.0.0.1:6379> JSON.ARRINSERT item:1 $.colors 2 '"yellow"' '"gold"'
1) (integer) 5

Получите обновленный список цветов.

127.0.0.1:6379> JSON.GET item:1 $.colors
"[[\"black\",\"silver\",\"yellow\",\"gold\",\"blue\"]]"

Найдите местоположение цвета silver.

127.0.0.1:6379> JSON.ARRINDEX item:1 $..colors '"silver"'
1) (integer) 1

См. также

JSON.ARRAPPEND | JSON.ARRINSERT

Связанные темы

  • RedisJSON
  • Индексация и поиск JSON-документов

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/json.arrindex/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API