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

Как разложить связанное значение массива?

Я пытался использовать предложение UNWIND.Но, Невозможно получить к нему доступ.

Есть ли альтернатива привязке массива или метод разложения массива?

1 Ответ

0 голосов
/ 29 марта 2019

К сожалению, в AgensGrpah Client API отсутствует связывание массива или он имеет очень низкую производительность.

Чтобы избежать этой проблемы, вы можете использовать объект массива привязки для запросов.

Функция "json_array_elements"Разлагает массив на несколько элементов.

agens=# prepare arr_bind ( json ) as
agens-#     optional match (n) with $1 as arr limit 1
agens-#     with json_array_elements( arr ) as elem
agens-#     create ({'id':elem.id,'value':elem.value});
PREPARE
agens=# execute arr_bind ( '[ {"id":1,"value":"a"}, {"id":2,"value":"b"}, {"id":3,"value":"c"} ]' );
GRAPH WRITE (INSERT VERTEX 3, INSERT EDGE 0)
agens=# match (n) return n;
                   n                   
---------------------------------------
 ag_vertex[1.1]{"id": 1, "value": "a"}
 ag_vertex[1.2]{"id": 2, "value": "b"}
 ag_vertex[1.3]{"id": 3, "value": "c"}
(3 rows)

agens=# deallocate arr_bind;
DEALLOCATE
...