JSON.SET - Amazon MemoryDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

JSON.SET

Imposta i valori JSON nel percorso.

Se il percorso richiede un membro oggetto:

  • Se l'elemento principale non esiste, il comando restituirà l'errore NONEXISTENT.

  • Se l'elemento principale esiste ma non è un oggetto, il comando restituirà ERROR.

  • Se l'elemento padre esiste ed è un oggetto:

    • Se il membro non esiste, un nuovo membro verrà accodato all'oggetto padre se e solo se l'oggetto padre è l'ultimo figlio nel percorso. In caso contrario, il comando restituirà un errore INESISTENTE.

    • Se il membro esiste, il suo valore verrà sostituito dal valore JSON.

Se il percorso richiede un indice di array:

  • Se l'elemento principale non esiste, il comando restituirà un errore INESISTENTE.

  • Se l'elemento principale esiste ma non è un array, il comando restituirà ERROR.

  • Se l'elemento principale esiste ma l'indice non è compreso nei limiti, il comando restituirà l'errore OUTOFBOUNDARIES.

  • Se l'elemento padre esiste e l'indice è valido, l'elemento verrà sostituito dal nuovo valore JSON.

Se il percorso richiede un oggetto o un array, il valore (oggetto o array) verrà sostituito dal nuovo valore JSON.

Sintassi

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

[NX | XX] Dove è possibile avere 0 o 1 degli identificatori [NX | XX]

  • chiave (richiesta) — Chiave Redis OSS del tipo di documento JSON

  • path (obbligatorio) — percorso JSON. Per una nuova chiave Redis OSS, il percorso JSON deve essere la radice «.».

  • NX (opzionale) — Se il percorso è la radice, imposta il valore solo se la chiave Redis OSS non esiste, ad esempio inserisci un nuovo documento. Se il percorso non è la radice, imposta il valore solo se il percorso non esiste, ad esempio inserisci un valore nel documento.

  • XX (opzionale) — Se il percorso è la radice, imposta il valore solo se esiste la chiave Redis OSS, ad esempio sostituisci il documento esistente. Se il percorso non è la radice, imposta il valore solo se il percorso esiste, ad esempio aggiorna il valore esistente.

Valori restituiti

  • Stringa semplice 'OK' se l’esito è positivo.

  • Null se la condizione NX o XX non viene soddisfatta.

Examples (Esempi)

Sintassi avanzata del percorso:

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]}"

Sintassi limitata del percorso:

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