JSON.SET - Amazon MemoryDB

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

Define os valores JSON no caminho.

Se o caminho exigir um membro do objeto:

  • Se o elemento pai não existir, o comando retornará o erro NONEXISTENT.

  • 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á o erro NONEXISTENT.

    • Se o membro existir, seu valor será substituído pelo valor JSON.

Se o caminho exigir um índice de matriz:

  • Se o elemento pai não existir, o comando retornará o erro NONEXISTENT.

  • 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á o erro OUTOFBOUNDARIES.

  • Se o elemento pai existir e o índice for válido, o elemento será substituído pelo novo valor JSON.

Se o caminho solicitar um objeto ou matriz, o valor (objeto ou matriz) será substituído pelo novo valor JSON.

Sintaxe

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

[NX | XX] Onde é possível ter 0 ou 1 de identificadores [NX | XX]

  • chave (obrigatória) — Chave Redis OSS do tipo de documento JSON

  • path (obrigatório): um caminho JSON. Para uma nova chave Redis OSS, o caminho JSON deve ser a raiz “.”.

  • NX (opcional) — Se o caminho for a raiz, defina o valor somente se a chave Redis OSS 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 Redis OSS 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