如何在redis中用where条件更新json的多个值?

jgzswidk  于 6个月前  发布在  Redis
关注(0)|答案(1)|浏览(72)

我有一个JSON存储在Redis中。我想使用where条件更新它的两个值,对于同一个键。我可以更新一个属性,但如何更新两个属性?
第一个月
这对于单值更新很有效。我如何用Code == 'abc'条件更新JSON中的两个值?
我试了JSON.MSET,它不能正常工作。

hyrbngr7

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.MERGERedis Stack 7.2开始可用。

相关问题