You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

valkey-bundle 8.1中JSON.DEL使用过滤条件时无法正常工作

Valkey json.del 返回0的问题排查与解决
  • 问题原因:你的JSON结构中root是对象(键值对集合),而非数组。你使用的[?(@.value > 2)]是JSONPath针对数组元素的过滤语法,直接作用于对象时无法匹配到任何节点,因此json.del返回0。

  • 正确命令写法:
    要匹配root下所有子对象并过滤value>2的节点,需要先通过*.定位到root的所有子对象,再应用过滤条件:

    json.del test '$.root.*[?(@.value > 2)]'
    

    执行该命令后会返回3,符合你的预期。

  • 补充说明:

    • $.root.*的作用是匹配root下的所有直接子对象(即"1"、"2"..."5"对应的{"value":n}对象);
    • 若JSON结构简单,也可使用递归匹配的表达式$..*[?(@.value > 2)],但复杂结构下可能误匹配非root下的节点,建议优先使用精准定位的表达式。

内容的提问来源于stack exchange,提问作者Luca Basso Ricci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:24:51