JSON.SET

Syntax
JSON.SET key path value [NX | XX]
Available in:
Redis Stack / JSON 1.0.0
Time complexity:
O(M+N) when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key

key中的path处设置JSON值

示例

必需的参数

key

是修改的关键。

path

是JSONPath指定的。默认是根$。对于新的Redis键,path必须是根。对于现有的键,当整个path存在时,它包含的值将被json值替换。对于现有的键,当path存在时,除了最后一个元素外,将添加一个带有json值的新子元素。

仅当它是path中的最后一个子节点,或者是path中新添加子节点的父节点时,将键(及其相应的值)添加到JSON对象(在RedisJSON数据类型键中)。可选参数NXXX修改此行为,适用于新的RedisJSON数据类型键以及其中的JSON对象键。

value

是要在指定路径设置的值

可选参数

NX

仅当键不存在时才设置键。

XX

仅当键已存在时设置键。

返回值

JSET.SET 返回一个简单的字符串回复:如果执行正确则返回 OK,如果未满足指定的 NXXX 条件则返回 nil。 有关回复的更多信息,请参阅 Redis 序列化协议规范

示例

Replace an existing value
redis> JSON.SET doc $ '{"a":2}'
OK
redis> JSON.SET doc $.a '3'
OK
redis> JSON.GET doc $
"[{\"a\":3}]"
Add a new value
redis> JSON.SET doc $ '{"a":2}'
OK
redis> JSON.SET doc $.b '8'
OK
redis> JSON.GET doc $
"[{\"a\":2,\"b\":8}]"
Update multi-paths
redis> JSON.SET doc $ '{"f1": {"a":1}, "f2":{"a":2}}'
OK
redis> JSON.SET doc $..a 3
OK
redis> JSON.GET doc
"{\"f1\":{\"a\":3},\"f2\":{\"a\":3}}"

另请参阅

JSON.GET | JSON.MGET


RATE THIS PAGE
Back to top ↑