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