![](/img/trans.png)
[英]Return type matched from multiple relationships in Neo4j with Cypher
[英]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.