JSON.SET - Amazon ElastiCache

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

JSON.SET

Menetapkan JSON nilai di jalur.

Jika jalur memanggil anggota objek:

  • Jika elemen induk tidak ada, perintah mengembalikan NONEXISTENT kesalahan.

  • Jika elemen induk ada tetapi bukan objek, perintah kembaliERROR.

  • Jika elemen induk ada dan merupakan objek:

    • Jika anggota tidak ada, anggota baru akan ditambahkan ke objek induk jika dan hanya jika objek induk adalah turunan terakhir di jalur. Jika tidak, perintah mengembalikan NONEXISTENT kesalahan.

    • Jika anggota ada, nilainya akan diganti dengan JSON nilai.

Jika jalur memanggil indeks array:

  • Jika elemen induk tidak ada, perintah mengembalikan NONEXISTENT kesalahan.

  • Jika elemen induk ada tetapi bukan array, perintah kembaliERROR.

  • Jika elemen induk ada tetapi indeks di luar batas, perintah mengembalikan OUTOFBOUNDARIES kesalahan.

  • Jika elemen induk ada dan indeks valid, elemen akan diganti dengan JSON nilai baru.

Jika jalur memanggil objek atau array, nilai (objek atau array) akan diganti dengan JSON nilai baru.

Sintaks

JSON.SET <key> <path> <json> [NX | XX]

[NX | XX] Di mana Anda dapat memiliki 0 atau 1 pengidentifikasi [NX | XX].

  • kunci (wajib) - Kunci Valkey atau Redis OSS dari jenis JSON dokumen.

  • jalur (wajib) — Sebuah JSON jalan. Untuk kunci baru, JSON jalurnya harus root “.”.

  • NX (opsional) - Jika jalurnya adalah root, tetapkan nilainya hanya jika kuncinya tidak ada. Artinya, masukkan dokumen baru. Jika jalur bukan root, atur nilainya hanya jika jalur tidak ada. Artinya, masukkan nilai ke dalam dokumen.

  • XX (opsional) - Jika jalurnya adalah root, tetapkan nilainya hanya jika kuncinya ada. Artinya, ganti dokumen yang ada. Jika jalur bukan root, atur nilainya hanya jika jalur ada. Artinya, perbarui nilai yang ada.

Nilai yang ditampilkan

  • String sederhana 'OK' jika berhasil.

  • Kosong jika kondisi NX atau XX tidak terpenuhi.

Contoh

Sintaksis jalur yang ditingkatkan:

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

Sintaksis jalur terbatas:

127.0.0.1:6379> JSON.SET k1 . '{"c":{"a":1, "b":2}, "e": [1,2,3,4,5]}' OK 127.0.0.1:6379> JSON.SET k1 .c.a '0' OK 127.0.0.1:6379> JSON.GET k1 "{\"c\":{\"a\":0,\"b\":2},\"e\":[1,2,3,4,5]}" 127.0.0.1:6379> JSON.SET k1 .e[-1] '0' OK 127.0.0.1:6379> JSON.GET k1 "{\"c\":{\"a\":0,\"b\":2},\"e\":[1,2,3,4,0]}" 127.0.0.1:6379> JSON.SET k1 .e[5] '0' (error) OUTOFBOUNDARIES Array index is out of bounds