JSON.SET - Amazon ElastiCache (Redis OSS)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

JSON.SET

パスに JSON 値を設定します。

パスがオブジェクトメンバーを要求する場合:

  • 親要素が存在しない場合、このコマンドは NONEXISTENT エラーを返します。

  • 親要素は存在するがオブジェクトではない場合、このコマンドは ERROR を返します。

  • 親要素が存在し、オブジェクトである場合:

    • メンバーが存在しない場合、親オブジェクトがパスの最後の子である場合にのみ、新しいメンバーが親オブジェクトに追加されます。それ以外の場合、このコマンドは NONEXISTENT エラーを返します。

    • メンバーが存在する場合、その値は JSON 値に置き換えられます。

パスが配列インデックスを要求する場合:

  • 親要素が存在しない場合、このコマンドは NONEXISTENT エラーを返します。

  • 親要素は存在するが配列ではない場合、このコマンドは ERROR を返します。

  • 親要素は存在するが、インデックスが範囲外である場合、このコマンドは OUTOFBOUNDARIES エラーを返します。

  • 親要素が存在し、インデックスが有効な場合、要素は新しい JSON 値に置き換えられます。

パスがオブジェクトまたは配列を要求する場合、値 (オブジェクトまたは配列) は新しい JSON 値に置き換えられます。

構文

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

[NX | XX] ここで、[NX | XX] の識別子を 0 個または 1 個持つことができます。

  • key (必須) — JSON ドキュメントタイプの Redis OSS キー。

  • path (必須) - JSON パス。新しい Redis OSS キーの場合、JSON パスはルート「」である必要があります。

  • NX (オプション) – パスがルートの場合は、Redis OSS キーが存在しない場合にのみ値を設定します。つまり、新しいドキュメントを挿入します。パスがルートでない場合は、パスが存在しない場合にのみ値を設定します。つまり、ドキュメントに値を挿入します。

  • XX (オプション) – パスがルートの場合は、Redis OSS キーが存在する場合にのみ値を設定します。つまり、既存のドキュメントを置き換えます。パスがルートでない場合は、パスが存在する場合にのみ値を設定します。つまり、既存の値を更新します。

戻る

  • 成功した場合は、シンプルな文字列「OK」が返されます。

  • NX または XX 条件が満たされない場合は、null が返されます。

拡張パス構文:

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

制限パス構文:

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