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

Hazelcast Map JSON数据SQL查询:筛选hasEvents为true的条目

正确查询Hazelcast Map中JSON格式数据的方法

你的问题出在误用了JSON_QUERY的作用,它是用来提取JSON片段的,不能直接用来筛选条目,而且路径语法也有误。以下是两种可行的正确写法:

方法一:使用JSON_VALUE结合WHERE子句筛选

JSON_VALUE用于提取JSON路径对应的单个值,配合WHERE子句就能过滤出符合条件的条目:

SELECT * FROM products WHERE JSON_VALUE(this, '$.data.field1.hasEvents') = 'true'

注意:Hazelcast会将JSON中的布尔值解析为字符串类型的'true'/'false',所以这里要和字符串'true'做比较,而非布尔值true。

方法二:直接使用JSON路径访问(需配置JSON映射)

如果你的Hazelcast Map已经配置为存储JSON格式数据(创建时指定format: JSON),可以直接用点语法访问嵌套字段:

SELECT * FROM products WHERE this.data.field1.hasEvents = true

这种写法更简洁,但前提是Map已正确识别为JSON存储格式。

为什么原语句无效?

你之前的JSON_QUERY语句只是尝试提取匹配路径的JSON值,并没有通过WHERE子句筛选整个条目,而且$.data.field1.hasEvents?==true不是合法的JSON路径语法,JSON_QUERY的第二个参数仅支持标准JSON路径表达式,不包含条件判断。

内容的提问来源于stack exchange,提问作者Postit0812

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:04:53