2017-03-01 60 views
0

我有一个节点链,例如从路径创建字符串

{Name: 'X'}->{Name: 'Y'}->{Name: 'Z'} 

,我想创建表示暗号的路径的字符串(我知道我能做到这一点的客户端,但我想这样做在一个查询),这将是这样的:

'X->Y->Z' 

是可行的吗?我调查过使用collect()和UNWIND,并且一直搜索到我脸上的蓝色

想法?

*编辑I *

作为附录(和使问题更加困难)我的查询将返回的路径集合(树木,DAG),所以我需要为每一个在树的路径的字符串

回答

1

Reduce是你的朋友在这里:

WITH reduce(s="",n in nodes(p) | s+n.name+"->") as str 
RETURN substring(str,0,length(str)-2) 

,或者如果你想节省额外操作

RETURN reduce(s=head(nodes(p)).name, n in tail(nodes(p)) | s+"->"+n.name) 

或APOC

RETURN apoc.text.join([n in nodes(p) | n.name],"->") 
+0

是什么?APOC这是一个3.0+的东西? – ekkis