As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
JSON.SET
Defina JSON valores no caminho.
Se o caminho exigir um membro do objeto:
Se o elemento pai não existir, o comando retornará NONEXISTENT um erro.
Se o elemento pai existir, mas não for um objeto, o comando retornaráERROR.
Se o elemento pai existir e for um objeto:
Se o membro não existir, um novo membro será anexado ao objeto pai se e somente se o objeto pai for o último filho no caminho. Caso contrário, o comando retornará NONEXISTENT um erro.
Se o membro existir, seu valor será substituído pelo JSON valor.
Se o caminho exigir um índice de matriz:
Se o elemento pai não existir, o comando retornará um NONEXISTENT erro.
Se o elemento pai existir, mas não for uma matriz, o comando retornaráERROR.
Se o elemento pai existir, mas o índice estiver fora dos limites, o comando retornará OUTOFBOUNDARIES um erro.
Se o elemento pai existir e o índice for válido, o elemento será substituído pelo novo JSON valor.
Se o caminho exigir um objeto ou matriz, o valor (objeto ou matriz) será substituído pelo novo JSON valor.
Sintaxe
JSON.SET <key> <path> <json> [NX | XX]
[NX | XX] Onde é possível ter 0 ou 1 de identificadores [NX | XX]
chave (obrigatório) — chave do tipo de JSON documento
caminho (obrigatório) — JSON caminho. Para uma nova chave, o JSON caminho deve ser a raiz “.”.
NX (opcional) — Se o caminho for a raiz, defina o valor somente se a chave não existir, ou seja, insira um novo documento. Se o caminho não for a raiz, defina o valor somente se o caminho não existir, ou seja, insira um valor no documento.
XX (opcional) — Se o caminho for a raiz, defina o valor somente se a chave existir, ou seja, substitua o documento existente. Se o caminho não for a raiz, defina o valor somente se o caminho existir, ou seja, atualize o valor existente.
Return
String simples 'OK' em caso de sucesso.
-
Nulo se a condição NX ou XX não for atendida.
Exemplos
Sintaxe do caminho aprimorada:
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]}"
Sintaxe do caminho restrita:
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