JSON.STRAPPEND

用法
JSON.STRAPPEND key [ path ] json_string
复杂度
O(N),其中 N 是与路径匹配的字符串值的数量。
模块
valkey-json
自模块版本
1.0.0
ACL 类别
@write, @fast, @json

将字符串附加到路径处的 JSON 字符串。

示例

增强路径语法

127.0.0.1:6379> JSON.SET k1 $ '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":3}}'
OK
127.0.0.1:6379> JSON.STRAPPEND k1 $.a.a '"a"'
1) (integer) 2
127.0.0.1:6379> JSON.STRAPPEND k1 $.a.* '"a"'
1) (integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 $.b.* '"a"'
1) (integer) 2
2) (nil)
127.0.0.1:6379> JSON.STRAPPEND k1 $.c.* '"a"'
1) (integer) 2
2) (integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 $.c.b '"a"'
1) (integer) 4
127.0.0.1:6379> JSON.STRAPPEND k1 $.d.* '"a"'
1) (nil)
2) (integer) 2
3) (nil)

受限路径语法

127.0.0.1:6379> JSON.SET k1 . '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":3}}'
OK
127.0.0.1:6379> JSON.STRAPPEND k1 .a.a '"a"'
(integer) 2
127.0.0.1:6379> JSON.STRAPPEND k1 .a.* '"a"'
(integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 .b.* '"a"'
(integer) 2
127.0.0.1:6379> JSON.STRAPPEND k1 .c.* '"a"'
(integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 .c.b '"a"'
(integer) 4
127.0.0.1:6379> JSON.STRAPPEND k1 .d.* '"a"'
(integer) 2

RESP2 回复

  • 如果路径是增强语法

    • 数组回复:表示每个路径上字符串新长度的整数数组。

    • 空值回复:对于值不是字符串的每个路径。

  • 如果路径是受限语法

    • 整数回复:字符串的新长度。

    • 整数回复:如果选择了多个字符串值,则返回最后更新字符串的新长度。

  • 简单错误回复:

    • 如果输入的 json 参数不是有效的 JSON 字符串。

    • 如果路径不存在。

    • 如果路径处的值不是字符串(仅适用于受限语法)。

RESP3 回复

  • 如果路径是增强语法

    • 数组回复:表示每个路径上字符串新长度的整数数组。

    • 空值回复:对于值不是字符串的每个路径。

  • 如果路径是受限语法

    • 整数回复:字符串的新长度。

    • 整数回复:如果选择了多个字符串值,则返回最后更新字符串的新长度。

  • 简单错误回复:

    • 如果输入的 json 参数不是有效的 JSON 字符串。

    • 如果路径不存在。

    • 如果路径处的值不是字符串(仅适用于受限语法)。