返回匹配节点Neo4j的所有节点和关系

时间:2015-08-10 00:32:06

标签: neo4j return cypher

我希望仅检索所有节点与传出关系的关系。这就是所有节点' b'连接到' a'以这种方式:

(a)-->(b)

在我的情况下。我有用户节点,然后连接到另一个节点,让我们标记它的工作'。从工作节点我们可以找到许多其他可能被标记为“work_friends”的节点。或者' work_locations'。该用户节点还可以具有来自用户节点的其他节点,例如学校,其又具有标记为“school_friends”的传出节点。和别的。

如何从工作节点返回所有节点并返回其工作节点及其所有工作朋友和工作地点?

我一直在努力。

Match(a:User),(b:Work) WHERE a.UserId = 'xxxx' AND b.Work = 'JobA' Return * 

但最终只返回两个匹配的节点,我希望它从匹配的工作节点返回所有节点。

编辑1: 所以,我想在这里写出问题有助于我解决自己的问题。我已经接近解决方案。

Match(a:User),(b:Work)-->(n) Where a.UserId = 
'xxxx' AND  b.Name = 'CompanyA' Return * 

所以在匹配中添加 - >(n)从(a)返回所有内容,其中(n)是从(b)连接的所有节点,即它返回:

(a)->(b)->(n) 

这接近我正在寻找的东西。我真的想回来:

(b)->(n) 

并忽略入站关系。

1 个答案:

答案 0 :(得分:2)

而且,我有我的解决方案。我想通过这篇文章来解决这个问题。我希望它可以帮助别人。

Match(a:User),(b:Work)-->(n) Where a.UserId = 
'xxxx' AND  b.Name = 'CompanyA' AND (a)-->(b) Return b, n 

这将返回所有节点列表:

(b)->(n) 

其中n是从b。

连接的所有节点