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

要插入值的数组中的位置。索引必须在数组的范围内。在索引 index 0 处插入表示在数组开头添加。负索引值从数组末尾开始。

可选参数

path

要指定的 JSONPath。默认值为根 $

返回值

JSON.ARRINSERT 返回一个 数组,其中包含每个路径的整数回复、数组的新大小,或者 nil(如果匹配的 JSON 值不是数组)。有关回复的更多信息,请参阅 Redis 序列化协议规范

示例

将新颜色添加到产品颜色列表中的特定位置

为黑色和银色降噪耳机创建一个文档。

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

将颜色 blue 添加到 colors 数组的末尾。JSON.ARRAPEND 返回数组的新大小。

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

返回 colors 数组的新长度。

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

获取产品的颜色列表。

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

在第二种颜色之后插入两种颜色。您现在有五种颜色。

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

获取更新的颜色列表。

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

另请参阅

JSON.ARRAPPEND | JSON.ARRINDEX


RATE THIS PAGE
Back to top ↑