我有一系列节点,例如
{Name: 'X'}->{Name: 'Y'}->{Name: 'Z'}
我想在cypher中创建一个表示路径的字符串(我知道我可以在客户端执行它,但我想在查询中执行它),如下所示:
'X->Y->Z'
可行吗?我已经调查了collect()和UNWIND的使用情况,并用Google搜索直到我脸上的蓝色
想法?
*编辑I *
作为附录(并使问题更加困难)我的查询将返回路径集合(树,DAG),因此我需要为每个路径创建一个字符串树
答案 0 :(得分:3)
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],"->")
答案 1 :(得分:1)
发现迈克尔·亨格(Michael Hunger)的一篇旧帖(2014年)答案:
http://grokbase.com/t/gg/neo4j/147ch1nj9b/concatenate-nodes-properties