如果我查询
MATCH (:Label1 {prop1: "start node"}) -[relationships*1..10]-> ()
UNWIND relationships as relationship
RETURN DISTINCT relationship
如何获取每个已获取关系的节点,以获得格式为:
╒════════╤════════╤═══════╕
│"from" │"type" │"to" │
╞════════╪════════╪═══════╡
├────────┼────────┼───────┤
└────────┴────────┴───────┘
是否存在type(r)
这样的函数,但用于从关系中获取节点?
2条答案
按热度按时间yk9xbfzb1#
RomanMitasov和ray在上面给出了可行的答案。
我不认为他们完全理解你想要做什么,因为你基本上是以一种低效率的方式返回图中的每一个关系,我这么说是因为没有开始或结束位置,指定1 - 10的路径长度没有任何作用。
例如:
CREATE (r1:Temp)-[:TEMP_REL]->(r2:Temp)-[:TEMP_REL]->(r3:Temp)
现在我们有了一个包含3个临时节点的图表,其中有2个关系:从R1到R2,从R2到R3。
在这些节点上运行查询:
你会看到你得到了四行,这不是你想要的,因为只有两个不同的关系。
您可以将其修改为只返回不同的值,但仍然会过度搜索图表。
为了了解图中的关系以及它们之间的联系,我使用了如下查询:
当然,这样做的缺点是,如果您有一个非常大的图,它可能需要一段时间才能运行。
如果只想查看图形的结构:
CALL db.schema.visualization()
最美好的祝愿和快乐的绘图!:)
0yg35tkg2#
是的,这样的功能确实存在!
startNode(r)
以获取关系r
的开始节点endNode(r)
以获取结束节点下面是最后一个查询: