Redis reJson: JSON.ARRAYAPPEND возвращает операцию WRONGTYPE для ключа, содержащего неправильный тип значения - PullRequest
0 голосов
/ 04 марта 2019

На Redis-Rejson я пытаюсь вычислить массивappend.Я вставил объект, путь, 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 голосов
/ 04 марта 2019

Вы должны сначала предоставить массив в базе данных, а затем использовать его в качестве получателя для других объектов 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: Почему программистам нравится делать расплывчатые документы?Это похоже на привлекательную еду, которая отказывается от еды.

...