Redis reJson:JSON.ARRAYAPPEND对持有错误类型值的键返回WRONGTYPE操作

时间:2019-03-04 18:09:11

标签: arrays object redis append command-line-interface

在redis-rejson上,我正在尝试计算arrayappend。 我按照documentation中的指示放入了一个对象,一个路径,一个json和一个数组。

简介:

我的目标=>我想用Redis创建一个对象数组

我的目标=>该对象数组允许我将用户会话放入我的Redis缓存中

我想要的输出=> " [{objectOne}, {objectTwoJustAdded}]"

我的问题=>似乎我在控制台中输入了错误的类型。

这是我的命令:

   JSON.ARRAPPEND test36 "." '{"user1":"1"}' [... CartModel]
    WRONGTYPE Operation against a key holding the wrong kind of value

但是您可以看到它不起作用,但我尝试了一些变体:

    127.0.0.1:6380> JSON.ARRAPPEND test36 "." '{"user1":"1"}'
    WRONGTYPE Operation against a key holding the wrong kind of value

    127.0.0.1:6380> JSON.ARRAPPEND test36 "here a vlue"
    ERR wrong number of arguments for 'JSON.ARRAPPEND' command

    127.0.0.1:6380> JSON.ARRAPPEND test36 "." 'here a value'
    WRONGTYPE Operation against a key holding the wrong kind of value

    127.0.0.1:6380> JSON.ARRAPPEND test36 "." '["here a value"]'
    WRONGTYPE Operation against a key holding the wrong kind of value

    127.0.0.1:6380> JSON.arrappend test36 "."  [ 'example', '.', '{"firstname":"Jon","lastname":"Doe"}' ] 
    Invalid argument(s)
    127.0.0.1:6380> JSON.get CartModel
    {"userID":{"beverage":{},"sandwich":{},"treat":{},"dessert":{}}}
    127.0.0.1:6380> JSON.ARRAPPEND test36 "." '{"user1":"1"}' [... CartModel]
    WRONGTYPE Operation against a key holding the wrong kind of value

    127.0.0.1:6380> JSON.ARRAPPEND arr . 0
    WRONGTYPE Operation against a key holding the wrong kind of value

均无效。 那怎么办呢? 任何提示都会很棒, 谢谢

1 个答案:

答案 0 :(得分:0)

您必须首先在数据库中提供一个数组,然后将其用作其他Json对象的接收者:

127.0.0.1:6380> JSON.set objectArray "." "[]"
OK
127.0.0.1:6380> json.arrappend objectArray "." '{"appenda":"a value"}'
1
127.0.0.1:6380> json.get objectArray
[{"appenda":"a value"}]

PS:为什么程序员喜欢制作模糊的文档?就像一顿吸引人的饭菜,拒绝进食。