JSON.NUMMULTBY - Amazon ElastiCache

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

JSON.NUMMULTBY

以指定數字乘於路徑上的數值。

語法

JSON.NUMMULTBY <key> <path> <number>
  • 金鑰 (必要) – JSON 文件類型的 Valkey 或 Redis OSS金鑰。

  • 路徑 (必要) – JSON 路徑。

  • number (必要) – 數字。

傳回

如果路徑是增強型語法:

  • 大量字串陣列代表每個路徑上產生的值。

  • 如果值不是數字,則其對應的傳回值為 null。

  • 如果無法剖析數字,會發生 WRONGTYPE 錯誤。

  • OVERFLOW 如果結果超出 64 位元IEEE雙精度浮點數的範圍,則為錯誤。

  • 如果沒有文件索引鍵,則為 NONEXISTENT

如果路徑是受限語法:

  • 大量字串代表結果值。

  • 如果選取多個值,命令會傳回上次所更新值的結果。

  • 如果路徑上的值不是數字,會發生 WRONGTYPE 錯誤。

  • 如果無法剖析數字,會發生 WRONGTYPE 錯誤。

  • OVERFLOW 如果結果超出 64 位元IEEE雙位元的範圍,則發生錯誤。

  • 如果沒有文件索引鍵,則為 NONEXISTENT

範例

增強型路徑語法:

127.0.0.1:6379> JSON.SET k1 . '{"a":[], "b":[1], "c":[1,2], "d":[1,2,3]}' OK 127.0.0.1:6379> JSON.NUMMULTBY k1 $.d[*] 2 "[2,4,6]" 127.0.0.1:6379> JSON.GET k1 "{\"a\":[],\"b\":[1],\"c\":[1,2],\"d\":[2,4,6]}" 127.0.0.1:6379> JSON.SET k1 $ '{"a":[], "b":[1], "c":[1,2], "d":[1,2,3]}' OK 127.0.0.1:6379> JSON.NUMMULTBY k1 $.a[*] 2 "[]" 127.0.0.1:6379> JSON.NUMMULTBY k1 $.b[*] 2 "[2]" 127.0.0.1:6379> JSON.NUMMULTBY k1 $.c[*] 2 "[2,4]" 127.0.0.1:6379> JSON.NUMMULTBY k1 $.d[*] 2 "[2,4,6]" 127.0.0.1:6379> JSON.SET k2 $ '{"a":{}, "b":{"a":1}, "c":{"a":1, "b":2}, "d":{"a":1, "b":2, "c":3}}' OK 127.0.0.1:6379> JSON.NUMMULTBY k2 $.a.* 2 "[]" 127.0.0.1:6379> JSON.NUMMULTBY k2 $.b.* 2 "[2]" 127.0.0.1:6379> JSON.NUMMULTBY k2 $.c.* 2 "[2,4]" 127.0.0.1:6379> JSON.NUMMULTBY k2 $.d.* 2 "[2,4,6]" 127.0.0.1:6379> JSON.SET k3 $ '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"b"}, "d":{"a":1, "b":"b", "c":3}}' OK 127.0.0.1:6379> JSON.NUMMULTBY k3 $.a.* 2 "[null]" 127.0.0.1:6379> JSON.NUMMULTBY k3 $.b.* 2 "[null,2]" 127.0.0.1:6379> JSON.NUMMULTBY k3 $.c.* 2 "[null,null]" 127.0.0.1:6379> JSON.NUMMULTBY k3 $.d.* 2 "[2,null,6]"

受限路徑語法:

127.0.0.1:6379> JSON.SET k1 . '{"a":[], "b":[1], "c":[1,2], "d":[1,2,3]}' OK 127.0.0.1:6379> JSON.NUMMULTBY k1 .d[1] 2 "4" 127.0.0.1:6379> JSON.GET k1 "{\"a\":[],\"b\":[1],\"c\":[1,2],\"d\":[1,4,3]}" 127.0.0.1:6379> JSON.SET k1 . '{"a":[], "b":[1], "c":[1,2], "d":[1,2,3]}' OK 127.0.0.1:6379> JSON.NUMMULTBY k1 .a[*] 2 (error) NONEXISTENT JSON path does not exist 127.0.0.1:6379> JSON.NUMMULTBY k1 .b[*] 2 "2" 127.0.0.1:6379> JSON.GET k1 "{\"a\":[],\"b\":[2],\"c\":[1,2],\"d\":[1,2,3]}" 127.0.0.1:6379> JSON.NUMMULTBY k1 .c[*] 2 "4" 127.0.0.1:6379> JSON.GET k1 "{\"a\":[],\"b\":[2],\"c\":[2,4],\"d\":[1,2,3]}" 127.0.0.1:6379> JSON.NUMMULTBY k1 .d[*] 2 "6" 127.0.0.1:6379> JSON.GET k1 "{\"a\":[],\"b\":[2],\"c\":[2,4],\"d\":[2,4,6]}" 127.0.0.1:6379> JSON.SET k2 . '{"a":{}, "b":{"a":1}, "c":{"a":1, "b":2}, "d":{"a":1, "b":2, "c":3}}' OK 127.0.0.1:6379> JSON.NUMMULTBY k2 .a.* 2 (error) NONEXISTENT JSON path does not exist 127.0.0.1:6379> JSON.NUMMULTBY k2 .b.* 2 "2" 127.0.0.1:6379> JSON.GET k2 "{\"a\":{},\"b\":{\"a\":2},\"c\":{\"a\":1,\"b\":2},\"d\":{\"a\":1,\"b\":2,\"c\":3}}" 127.0.0.1:6379> JSON.NUMMULTBY k2 .c.* 2 "4" 127.0.0.1:6379> JSON.GET k2 "{\"a\":{},\"b\":{\"a\":2},\"c\":{\"a\":2,\"b\":4},\"d\":{\"a\":1,\"b\":2,\"c\":3}}" 127.0.0.1:6379> JSON.NUMMULTBY k2 .d.* 2 "6" 127.0.0.1:6379> JSON.GET k2 "{\"a\":{},\"b\":{\"a\":2},\"c\":{\"a\":2,\"b\":4},\"d\":{\"a\":2,\"b\":4,\"c\":6}}" 127.0.0.1:6379> JSON.SET k3 . '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"b"}, "d":{"a":1, "b":"b", "c":3}}' OK 127.0.0.1:6379> JSON.NUMMULTBY k3 .a.* 2 (error) WRONGTYPE JSON element is not a number 127.0.0.1:6379> JSON.NUMMULTBY k3 .b.* 2 "2" 127.0.0.1:6379> JSON.GET k3 "{\"a\":{\"a\":\"a\"},\"b\":{\"a\":\"a\",\"b\":2},\"c\":{\"a\":\"a\",\"b\":\"b\"},\"d\":{\"a\":1,\"b\":\"b\",\"c\":3}}" 127.0.0.1:6379> JSON.NUMMULTBY k3 .c.* 2 (error) WRONGTYPE JSON element is not a number 127.0.0.1:6379> JSON.NUMMULTBY k3 .d.* 2 "6" 127.0.0.1:6379> JSON.GET k3 "{\"a\":{\"a\":\"a\"},\"b\":{\"a\":\"a\",\"b\":2},\"c\":{\"a\":\"a\",\"b\":\"b\"},\"d\":{\"a\":2,\"b\":\"b\",\"c\":6}}"