从Neo4J中的节点获取所有节点关系

时间:2016-06-28 04:05:35

标签: neo4j cypher

我们说我们有这个密码

match (n:Person{pid:322})-[k*1..2]->(s) return k

k将是来自最多2个跃点的特定节点Collection的所有关系的n

如何Node-Relation-Node Relationk所有match (a)-[b]->(c) foreach b in k return a,b,c?它类似foreach,但我知道此查询无效,因为在这种情况下,Neo4J中的return a,b,c关键字无法使用。

编辑: 我想我应该添加一些插图来使事情更清楚。这里我使用Neo4J文档中的一个例子: Neo4J example

当我从Charlie Sheen开始并使用1..2范围时,查询必须返回(假设查询以S = S[:1] + S[2:] 结尾)

a | b | ç
查理辛| ACTED_IN |华尔街
查理辛|父亲|马丁辛 马丁辛| ACTED_IN |美国总统 马丁辛| ACTED_IN |华尔街

3 个答案:

答案 0 :(得分:0)

我不确定为什么不会这样:

match (n:Person{pid:322})-[k*1..2]->(s) return n,k,s

除非我误解你的问题。

答案 1 :(得分:0)

路径将通过n

为您提供从sk的节点和关系切片序列
 MATCH p=(n:Person{pid:322})-[k*1..2]->(s) return p

您还可以使用nodes(p)rels(p)

仅从路径中提取节点和/或仅提取关系

答案 2 :(得分:0)

此查询应生成您编辑的问题所要求的abc值(假设您始终需要name属性值):

MATCH (n:Person{pid:322})-[k*1..2]->(s)
WITH LAST(k) AS lk
RETURN STARTNODE(lk).name AS a, TYPE(lk) AS b, ENDNODE(lk).name AS c;