如何使用 ReJSON 设置嵌套值 (objects)

How to set nested values (objects) using ReJSON

如果我使用 ReJSON 插入以下 object:

JSON.SET testing . '{"person":{"name":"John","surname":"Doe"}}'

有没有办法 "append" 嵌套结构?我想添加 "address.name" 作为示例以获得以下 JSON:

{
  "person": {
    "name": "John",
    "surname": "Doe"
  },
  "address": {
    "name": "Imaginary Street"
  }
}

我试图使用 JSON.SET testing .address.name '"Imaginary Street 7"' 但结果是 (error) ERR missing key at non-terminal path level

文档如下:

A key (with its respective value) is added to a JSON Object (in a Redis ReJSON data type key) if and only if it is the last child in the path.

"address.name"不是路径中的最后一个child吗?我做错了什么?

由于您要添加字典 ('address'),因此解决方法是:

JSON.SET testing .address '{"name": "Imaginary Street"}'

或者,如果您这样做:

JSON.SET testing .address '{}'

您将能够毫无错误地使用问题中的命令。