JSON.SET - Amazon MemoryDB

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

JSON.SET

Tetapkan nilai JSON di jalur.

Jika jalur memanggil anggota objek:

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

  • Jika elemen induk ada tetapi bukan objek, perintah akan mengembalikan 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 akan mengembalikan kesalahan NONEXISTENT.

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

Jika jalur memanggil indeks array:

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

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

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

  • 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 (diperlukan) - jalur JSON. Untuk kunci Redis OSS baru, jalur JSON harus menjadi root “.”.

  • NX (opsional) - Jika jalurnya adalah root, atur nilainya hanya jika kunci Redis OSS tidak ada, yaitu menyisipkan dokumen baru. Jika jalur bukan root, atur nilainya hanya jika jalur tidak ada, yaitu, masukkan nilai ke dalam dokumen.

  • XX (opsional) - Jika jalurnya adalah root, atur nilainya hanya jika kunci Redis OSS ada, yaitu mengganti dokumen yang ada. Jika jalur bukan root, tetapkan nilainya hanya jika jalur ada, yaitu, 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