获取变量路径内节点的传入连接。

问题描述 投票:0回答:1

Hi being a newbie to neo4j im stuck at the following query, any help would be really appreciated.

Match (s1:state{name:”stop”}),(s2:state{name:”start”}),


Match p = ShortestPath((s1)-[*]—(s2)),


//How to fetch incoming connection to one of the node type(:condition) in variable path without querying entire graph


Match p2 = (e)-[*]—>(if:condition)
Return p,e

还有一个后续问题是,一旦我们有了这样的子图,我们如何在子图中获取节点直到(if:condition)。

neo4j py2neo
1个回答
0
投票

如何通过标签检索节点,在任意长度的路径中存在入库关系?

改写自:"如何在不查询整个图的情况下,获取变量路径中的一个节点类型(:条件)的入库关系。"

关系的方向性是第一个也是最好的过滤对象,所以从那里开始(即使它是你的终点节点)。

但是我觉得你应该把你的问题澄清一下,同时把你的例子清理一下。

MATCH (stop:state {name:"stop"}), (start:state {name:"start"})
MATCH (stop2:state:condition {name:"stop"})-[]->(stop)
MATCH p = ShortestPath((start)-[*]—(stop2))
RETURN p, stop2

至于如何在不查询整个图的情况下做到这一点......这完全取决于你的图。更多的,当你对 任何 长径,它 必须 查询从起始节点出发的所有路径。如果这个节点与你的整个图相连,你怎么能指望既能 "匹配所有路径",又能 "不匹配所有路径"?

也许你的意思是,"从匹配的路径中提取一个节点?"

MATCH (stop:state {name:"stop"}), (start:state {name:"start"})
MATCH p = ShortestPath((start)-[*]—(stop2))
WITH p, nodes(p) AS n
WHERE ALL(node IN n WHERE node:condition)
RETURN p, n
© www.soinside.com 2019 - 2024. All rights reserved.