如何找到邻居';neo4j中路径的s节点
我有一条路径,我想得到通过一些边连接到此路径的节点。我写了这个qwery,但它不能正常工作:如何找到邻居';neo4j中路径的s节点,neo4j,cypher,Neo4j,Cypher,我有一条路径,我想得到通过一些边连接到此路径的节点。我写了这个qwery,但它不能正常工作: match p=(a)-[:example*]->(c) where length(p) = 5 with p match (u)-[r:example2]-> p return u,p,r 我想得到所有的节点'u'。 你能告诉我我做错了什么吗 谢谢。使用函数、列表提取路径节点,然后执行匹配。您可能希望查看每个节点a的结果 match p=(a)-[:example*]->(c)
match p=(a)-[:example*]->(c) where length(p) = 5
with p
match (u)-[r:example2]-> p return u,p,r
我想得到所有的节点'u'。
你能告诉我我做错了什么吗
谢谢。使用函数、列表提取路径节点,然后执行匹配。您可能希望查看每个节点
a
的结果
match p=(a)-[:example*]->(c)
where length(p) = 5
with a, nodes(p) as pathNodes
unwind pathNodes as pathNode
match (u)-[r:example2]->(pathNode)
return a, collect([u, pathNode])
欢迎来到堆栈溢出!请使用编辑器将您的查询格式化为源代码。您好,谢谢,但是我如何获取所有节点,而不仅仅是路径的n位置?(p[n])我相应地更新了我的答案。请注意,您可能只想收集
u
或pathNode
节点,这取决于您的用例。非常感谢,它成功了!(我只需要u的计数)第五行中的u是什么?u
是该行中引入的新变量。Cypher中的MATCH
子句允许您引入新变量(不像WHERE
子句只允许使用现有变量)。