繁体   English   中英

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

[英]Return all nodes and relationships from a matched node Neo4j

我正在寻找检索所有节点仅与传出的关系的关系。 这就是所有以这种方式连接到“ a”的节点“ b”:

(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) 

并忽略入站关系。

而且,我有解决方案。 我猜遍了这篇文章,终于解决了。 我希望它可以帮助其他人。

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

这将返回所有节点列表,因此:

(b)->(n) 

其中n是从b连接的所有节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM