【发布时间】:2014-11-13 07:53:42
【问题描述】:
您知道如何编写一个密码查询来返回与节点相关的所有传递关系吗?
例如,如果我有:(node1)-[rel1]->(node2)-[rel2]->(node3)。
我想要一个查询,假设 node1 返回 rel1 和 rel2。
感谢您的帮助!
【问题讨论】:
您知道如何编写一个密码查询来返回与节点相关的所有传递关系吗?
例如,如果我有:(node1)-[rel1]->(node2)-[rel2]->(node3)。
我想要一个查询,假设 node1 返回 rel1 和 rel2。
感谢您的帮助!
【问题讨论】:
您需要使用可变路径匹配,假设您的起始节点是节点 1,标签为 Label 和 name='node1':
MATCH path=(node1:Label {name:'node1'})-[*..100]->()
RETURN relationships(path) as rels
relationships 函数返回一个包含沿该路径的所有关系的列表。为可变深度匹配提供上限是最佳实践,这里我将其任意设置为 100。
获取关系的ID:
MATCH path=(node1:Label {name:'node1'})-[*..100]->()
RETURN [r in relationships(path) | ID(x)] as relIds
【讨论】: