JSON.TOGGLE

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

在给定路径上切换布尔值(true 和 false)的状态。

示例

增强路径语法

127.0.0.1:6379> JSON.SET k1 . '{"a":true, "b":false, "c":1, "d":null, "e":"foo", "f":[], "g":{}}'
OK
127.0.0.1:6379> JSON.TOGGLE k1 $.*
1) (integer) 0
2) (integer) 1
3) (nil)
4) (nil)
5) (nil)
6) (nil)
7) (nil)
127.0.0.1:6379> JSON.TOGGLE k1 $.*
1) (integer) 1
2) (integer) 0
3) (nil)
4) (nil)
5) (nil)
6) (nil)
7) (nil)

受限路径语法

127.0.0.1:6379> JSON.SET k1 . true
OK
127.0.0.1:6379> JSON.TOGGLE k1
"false"
127.0.0.1:6379> JSON.TOGGLE k1
"true"

127.0.0.1:6379> JSON.SET k2 . '{"isAvailable": false}'
OK
127.0.0.1:6379> JSON.TOGGLE k2 .isAvailable
"true"
127.0.0.1:6379> JSON.TOGGLE k2 .isAvailable
"false"

RESP2 回复

  • 如果路径是增强语法

    • 数组回复:整数数组(0 代表 false,1 代表 true),表示每个路径上最终的布尔值。

    • Nil 回复:对于值不是布尔值的每个路径。

  • 如果路径是受限语法

  • 简单错误回复:

    • 如果文档键不存在。

    • 如果路径上的值不是布尔值(仅限受限语法)。

RESP3 回复

  • 如果路径是增强语法

    • 数组回复:整数数组(0 代表 false,1 代表 true),表示每个路径上最终的布尔值。

    • Null 回复:对于值不是布尔值的每个路径。

  • 如果路径是受限语法

  • 简单错误回复:

    • 如果文档键不存在。

    • 如果路径上的值不是布尔值(仅限受限语法)。