JSON.SET - Amazon ElastiCache (Redis OSS)

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

JSON.SET

Menetapkan nilai JSON di jalur.

Jika jalur memanggil anggota objek:

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

  • Jika elemen induk ada, tetapi bukan objek, perintah ini menampilkan ERROR.

  • 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 ini mengembalikan kesalahan NONEXISTENT.

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

Jika jalur memanggil indeks array:

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

  • Jika elemen induk ada tetapi bukan array, perintah ini mengembalikan ERROR.

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

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

Jika jalur memanggil objek atau array, nilai (objek atau array) akan digantikan oleh nilai JSON 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 Redis OSS dari jenis dokumen JSON.

  • jalur (wajib) – Sebuah jalur JSON. Untuk kunci Redis OSS baru, jalur JSON harus menjadi root “.”.

  • NX (opsional) - Jika jalurnya adalah root, tetapkan nilainya hanya jika kunci Redis OSS 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, atur nilainya hanya jika kunci Redis OSS 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