Spec-Zone.ru › Redis

JSON.ARRINSERT

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

Вставляет json значения в массив по path позиции перед index (сдвигая элементы вправо)

Примеры

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

key

является ключом для изменения.

value

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

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

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

index

указывает позицию в массиве, куда нужно вставить значение. Индекс должен находиться в допустимом диапазоне массива. Вставка по индексу 0 добавляет элемент в начало массива. Отрицательные индексы отсчитываются с конца массива.

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

path

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

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

JSON.ARRINSERT возвращает массив целых чисел в ответ на каждый путь, новый размер массива или 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\"]]"

См. также

JSON.ARRAPPEND | JSON.ARRINDEX

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

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

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

Spec-Zone.ru

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