簡體   English   中英

Neo4j - 如何在多個對立關系中找到節點?

[英]Neo4j - How to find Nodes over multiple opposing Relationships?

我是 Neo4j 的初學者,我正在努力完成一項任務,我必須在多個對立關系中找到節點。

圖模型如下所示: Graphmodel

我需要列出一個段內的所有行。 輸出應返回 3 個節點:

Trainstop1, Trainstop2, Line(-s)

例如:

  • 10315、10296、1026
  • ...

我感謝所有提示:-)

歡迎成為 Neo4j 新用戶! 我在寫這篇文章時做了一些假設,因為你沒有完全描述這個問題。 您應該考慮與您的架構不同的設計。 您的 ProjSegA 、B 等可能是 ProjSeg 與屬性名稱的關系,其中名稱為 A、B 等。您可能有一種類型為屬性類型的 Line 節點,其中 type=mainline、subline 等。您仍然可以擁有主線和副線之間的關系。 這種模式將使遍歷更容易。

match p=(l:Line{type:'mainline'})-[r:ProjSeg{name:'A'}*0..x}]->(s:Section) return p

Segments 是否與線相關?

如果你把問題說清楚,我們可能會給出更中肯的答復。 但希望這能提供一些線索。

如果您想從“Abschnitt”節點獲取死胡同節點...

match path=(a:Abschnitt)-[r:*1..]->(x)
return last(nodes(path))

或者

match path=(a:Abschnitt{Section:2})-[r:*1..]->(x) where x:Haltestelle OR x:Linie
with collect(distinct last(nodes(path))) as deadends
with [i in deadends where head(labels(i)) = 'Haltestelle'] as Haltestelle,
     [i in deadends where head(labels(i)) = 'Linie'] as Linie
return Haltestelle.Trainstop, Linie.Line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM