2017-02-24 44 views
0

我有一个初学者Cypher的问题。我有这样一个查询:Cypher:从查询中返回节点和边?

MATCH (rebecca:Person {name:"Rebecca"})-[1..2]->(companies:Company) 
RETURN companies 

这将返回丽贝卡的两跳内的所有公司,但它只返回最终公司的节点。我怎样才能看到边缘和中间节点呢?

回答

2

您只能返回别名的实体。

MATCH (rebecca:Person {name:"Rebecca"})-[1..2]->(companies:Company) 
RETURN companies 

添加r别名你的人际关系:

MATCH (rebecca:Person {name:"Rebecca"})-[r*1..2]->(companies:Company) 
RETURN companies, r 

回访中间节点,你可以把它的路径:

MATCH p=(rebecca:Person {name:"Rebecca"})-[r*1..2]->(companies:Company) 
RETURN companies, relationships(p), nodes(p) 

您也可以返回公司与沿(relationship,startnode,endnode)的地图:

MATCH (rebecca:Person {name:"Rebecca"})-[r*1..2]->(companies:Company) 
RETURN companies, 
     extract(x IN r | {rel: x, start: startNode(x), end: endNode(x)}) 
+1

很好的答案,谢谢! – Richard