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
содержит одно или несколько значений для вставки в один или несколько массивов.
Чтобы указать строку как значение массива для вставки, оберните строку в кавычки дополнительным набором одинарных кавычек. Пример: '"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
Связанные темы
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/json.arrinsert/