我试图在AgensGraph上获取数组的标签吗?
但是,它返回有关类型转换的错误。
如何获取数组标签?
agens=# match (n:o) with collect(n) as n return labels(n[0]);
ERROR: cannot cast type jsonb to vertex
agens =# match (n:o{id:1}) return labels(n);
labels
--------
["o"]
(1 row)
答案 0 :(得分:0)
AgensGraph的数组处理存在问题。
函数“收集”将所有数据类型转换为json。
而且不可能还原数据类型。
agens =# match (n:o) with collect(n) as n return n[0];
n
--------------------------------------------------------
{"id": "3.1", "tid": "(0,1)", "properties": {"id": 1}}
(1 row)
agens =# match (n:o{id:1}) return n;
n
-----------------
o[3.1]{"id": 1}
(1 row)
使用“ array_agg”代替“ collect”。
agens =# match (n:o) with array_agg(n) as n return n[0];
n
-----------------
o[3.1]{"id": 1}
(1 row)
agens =# match (n:o) with array_agg(n) as n return labels(n[0]);
labels
--------
["o"]
(1 row)