JSON.MSET - Amazon ElastiCache

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

JSON.MSET

支援 Valkey 8.1 版和更新版本。

設定多個金鑰的 JSON 值。操作是原子的。已設定所有值或未設定任何值。

語法

JSON.MSET key path json [ key path json ... ]
  • 如果路徑呼叫物件成員:

    • 如果父元素不存在,命令將傳回 NONEXISTENT 錯誤。

    • 如果父元素存在,但不是物件,則命令會傳回 ERROR。

    • 如果有父元素且為物件:

      • 如果沒有成員,只會在父物件是路徑中的最後一個子系時,將新成員附加至父物件。否則,命令將傳回 NONEXISTENT 錯誤。

      • 如果有該成員,其值將以 JSON 值取代。

  • 如果路徑呼叫陣列索引:

    • 如果父元素不存在,命令將傳回 NONEXISTENT 錯誤。

    • 如果父元素存在,但不是陣列,則命令會傳回 ERROR。

    • 如果父元素存在,但索引超出範圍,則命令將傳回 OUTOFBOUNDARIES 錯誤。

    • 如果有父元素且索引有效,該元素將以新的 JSON 值取代。

  • 如果路徑呼叫物件或陣列,該值 (物件或陣列) 將以新的 JSON 值取代。

傳回

  • 簡易字串回覆:如果操作成功,則為「OK」。

  • 簡單錯誤回覆:如果操作失敗。

範例

增強型路徑語法:

127.0.0.1:6379> JSON.MSET k1 . '[1,2,3,4,5]' k2 . '{"a":{"a":1, "b":2, "c":3}}' k3 . '{"a": [1,2,3,4,5]}' OK 127.0.0.1:6379> JSON.GET k1 "[1,2,3,4,5]" 127.0.0.1:6379> JSON.GET k2 "{\"a\":{\"a\":1,\"b\":2,\"c\":3}}" 127.0.0.1:6379> JSON.MSET k2 $.a.* '0' k3 $.a[*] '0' OK 127.0.0.1:6379> JSON.GET k2 "{\"a\":{\"a\":0,\"b\":0,\"c\":0}}" 127.0.0.1:6379> JSON.GET k3 "{\"a\":[0,0,0,0,0]}"

受限路徑語法:

127.0.0.1:6379> JSON.MSET k1 . '{"name": "John","address": {"street": "123 Main St","city": "Springfield"},"phones": ["555-1234","555-5678"]}' OK 127.0.0.1:6379> JSON.MSET k1 .address.street '"21 2nd Street"' k1 .address.city '"New York"' OK 127.0.0.1:6379> JSON.GET k1 .address.street "\"21 2nd Street\"" 127.0.0.1:6379> JSON.GET k1 .address.city "\"New York\""