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

如何获取agtype类型顶点属性courses列表的长度?

获取AG顶点中数组属性的长度

你用ARRAY_LENGTH无效的原因是:courses是Apache AGE的agtype类型数组,并非PostgreSQL原生数组,所以原生数组函数无法直接处理。针对这种情况,有两种简单的解决方式:

方法1:Cypher内置size()函数(推荐)

直接在Cypher查询里用size()函数,它专门用来计算数组、集合的长度:

test=# SELECT * FROM cypher('graph', $$
MATCH (s:student {name: "Muneeb"})
RETURN size(s.courses) AS course_count
$$) as (course_count agtype);

执行结果:

course_count 
--------------
 4
(1 row)

方法2:SQL层面用ag_array_length()函数

如果需要在SQL逻辑中处理,可以借助AGE提供的ag_array_length()函数,先提取出courses属性再计算长度:

test=# SELECT ag_array_length((student->>'properties'->>'courses')::agtype, 1) AS course_count
FROM cypher('graph', $$
MATCH (s:student {name: "Muneeb"})
RETURN s
$$) as (student agtype);

这里第二个参数1指定数组维度(当前是一维数组),执行后同样会返回数组长度4。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:17:22