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 JSON nilai di jalur.

Jika jalur memanggil anggota objek:

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

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

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

Jika jalur memanggil indeks array:

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

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

  • Jika elemen induk ada tetapi indeks di luar batas, perintah akan 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 jenis JSON dokumen

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

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