Как получить метки массива на AgensGraph? - PullRequest
0 голосов
/ 25 февраля 2019

Я пытался получить метки массива в 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)

1 Ответ

0 голосов
/ 25 февраля 2019

Возникла проблема с обработкой массива 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)
...