JSON.ARRPOP

移除并返回path处数组中指定索引处的元素

语法

JSON.ARRPOP key [path [index]]

引入版本:1.0.0

复杂度摘要:O(N)

从数组中的索引中删除并返回一个元素

示例

必需参数

key

修改关键。

index

是数组中开始弹出的位置。默认为 -1,表示最后一个元素。超出范围的索引四舍五入到其各自的数组末尾。弹出空数组返回 null。

可选参数

path

是JSONPath来指定。默认为根 $。

示例

Pop a value from an index and insert a new value

打造两款最大音量的耳机产品。

redis> JSON.SET key $ '[{"name":"健康耳机","description":"无线降噪蓝牙耳机technology","connection":{"wireless":true,"type":"蓝牙"},"price":99.98,"stock":25,"colors":["black","silver"],"max_level":[60,70,80]},{"name":"噪音耳机","description":"具有降噪功能的无线蓝牙耳机technology","connection":{"wireless":true,"type":"Bluetooth"},"price":99.98,"stock":25,"colors":["black","silver"],"max_level":[80,90,100,120]}]' OK

获取第二个产品的所有最大值。

redis> JSON.GET key $.[1].max_level "[[80,90,100,120]]"

更新产品的max_level字段:删除不可用的值并添加新的可用值。

redis> JSON.ARRPOP key $.[1].max_level 0 1) "80"

获取更新后的数组。

redis> JSON.GET key $.[1].max_level "[[90,100,120]]"

现在插入一个新的最低值。

redis> JSON.ARRINSERT key $.[1].max_level 0 85 1) (整数) 4

获取更新后的数组。

redis> JSON.GET key $.[1].max_level "[[85,90,100,120]]"

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 支持
✅ 灵活且每年一次
✅ 免费和固定

返回值

RESP2

批量字符串回复 或 空回复 的 数组回复,其中每个元素都是弹出的字符串形式的 JSON 值,如果匹配值不是数组,则为 null。

RESP3

批量字符串回复 或 空回复 的 数组回复,其中每个元素都是弹出的字符串形式的 JSON 值,如果匹配值不是数组,则为 null。

参见

JSON.ARRAPPEND | JSON.ARRINDEX

资料来源:Redis 官方 JSON.ARRPOP 文档;中文内容参考 Redis 文档许可。