2017-02-18 14 views
3

Я хотел бы извлечь из свойств пути из узлов и отношений. Я могу сделать это отдельно для узлов и отношений, используя следующие запросы.Cypher: Извлечь узел и свойства отношения из пути

extract(n IN nodes(path)| n.name)

extract(r IN relationships(path)| r.metric)

Есть ли способ извлечения имен и метрик из элементов пути в списке, который выглядит следующим образом [name1, metric1, name2, metric2, name3]

ответ

2

Вы можете использовать reduce для объединения массивов:

WITH path, 
    extract(n IN nodes(path)| n.name) as names, 
    extract(r IN relationships(path)| r.metric) as metrics 
RETURN HEAD(names) + 
     REDUCE(acc = [], i in RANGE(1,size(metrics)) | 
       acc + metrics[i-1] + names[i])