JSON.SET - Amazon MemoryDB

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

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 個持つことができます

  • キー (必須) – JSONドキュメントタイプのキー

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

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

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

戻る

  • 成功した場合は、シンプルな文字列「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