JSON.ARRINDEX - Amazon ElastiCache for Redis
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

JSON.ARRINDEX

搜索标量 JSON 值在路径的数组中的首次出现。

  • 超出范围错误的处理方法是将索引舍入到数组的开头和结尾。

  • 如果 start > end,则返回 -1(未找到)。

语法

JSON.ARRINDEX <key> <path> <json-scalar> [start [end]]
  • key(必需)– JSON 文档类型的 Redis 键。

  • path(必需)– 一个 JSON 路径。

  • json-scalar(必需)- 要搜索的标量值。JSON 标量是指不是对象或数组的值。也就是说,字符串、数字、布尔值和 Null 是标量值。

  • start(可选)– 起始索引(含)。如果未提供,则默认为 0。

  • end(可选)– 结束索引(不含)。如果未提供,则默认为 0,这意味着包含最后一个元素。0 或 -1 意味着包含最后一个元素。

返回值

如果路径是增强的语法:

  • 整数数组。每个值都是路径内数组中匹配元素的索引。如果未找到,则值为 -1。

  • 如果值不是数组,则其对应的返回值为 Null。

如果路径是受限的语法:

  • 整数、匹配元素的索引,如果未找到,则为 -1。

  • 如果路径中的值不是数组,则为 WRONGTYPE 错误。

示例

增强的路径语法:

127.0.0.1:6379> JSON.SET k1 . '[[], ["a"], ["a", "b"], ["a", "b", "c"]]' OK 127.0.0.1:6379> JSON.ARRINDEX k1 $[*] '"b"' 1) (integer) -1 2) (integer) -1 3) (integer) 1 4) (integer) 1

受限的路径语法:

127.0.0.1:6379> JSON.SET k1 . '{"children": ["John", "Jack", "Tom", "Bob", "Mike"]}' OK 127.0.0.1:6379> JSON.ARRINDEX k1 .children '"Tom"' (integer) 2