我有一个JSON存储在Redis中。我想使用where条件更新它的两个值,对于同一个键。我可以更新一个属性,但如何更新两个属性?第一个月这对于单值更新很有效。我如何用Code == 'abc'条件更新JSON中的两个值?我试了JSON.MSET,它不能正常工作。
Code == 'abc'
JSON.MSET
hyrbngr71#
是的,你可以这样做:
redis> JSON.SET x $ '[{"code":"abc", "val1":1, "val2":2}, {"code":"def", "val1":5, "val2":6}]'
字符串让我们从检索两个元素的值开始:
redis> JSON.GET x '$[?(@.code=="abc")]["val1", "val2"]' "[1,2]"
型现在,让我们更改这两个元素的值:
redis> JSON.MERGE x '$[?(@.code=="abc")]' '{"val1":3, "val2":4}' OK
型并再次检索这两个元素的值:
redis> JSON.GET x '$[?(@.code=="abc")]["val1", "val2"]' "[3,4]"
型请注意,JSON.MERGE从Redis Stack 7.2开始可用。
1条答案
按热度按时间hyrbngr71#
是的,你可以这样做:
字符串
让我们从检索两个元素的值开始:
型
现在,让我们更改这两个元素的值:
型
并再次检索这两个元素的值:
型
请注意,JSON.MERGE从Redis Stack 7.2开始可用。