2017-08-07 34 views
1

我創建了一個包含三個節點的小型數據庫:Abraham,Isaac和Jacob。亞伯拉罕是以撒的父親,以撒是雅各的父親。Neo4j中顯示的關係雖然不應該

現在我執行以下查詢:

MATCH (a:Person), (i:Person) 
WHERE a.name='Abraham' and i.name='Isaac' 
RETURN a, i 

運行從Neo4j的Web界面查詢顯示他們之間的父親的關係的兩個節點:result shown in the Neo4J web interface

這很奇怪,因爲我沒有要求任何關係。 JSON響應不包含以下關係:

[{ 
    "keys": [ 
     "a", 
     "i" 
    ], 
    "length": 2, 
    "_fields": [ 
     { 
      "identity": { 
       "low": 0, 
       "high": 0 
      }, 
      "labels": [ 
       "Person" 
      ], 
      "properties": { 
       "name": "Abraham" 
      } 
     }, 
     { 
      "identity": { 
       "low": 1, 
       "high": 0 
      }, 
      "labels": [ 
       "Person" 
      ], 
      "properties": { 
       "name": "Isaac" 
      } 
     } 
    ], 
    "_fieldLookup": { 
     "a": 0, 
     "i": 1 
    } 
}] 

爲什麼Neo4J顯示這種關係?我該如何讓它停止?我試圖創建一個查詢,返回一組節點之間的各種關係,我真的不希望Neo4J干擾並添加自己的關係。

+1

這是我用過的'relationships'標籤中的第一次。從來沒有想過我會要求關於Stack Overflow的關係建議... – zmbq

+1

相關https://stackoverflow.com/questions/37603618/how-to-hide-unwanted-relationships-between-nodes-in-neo4j/45121705#45121705 –

+0

這沒有關係,它是重複的。我已經投票結束(原來我不能真正關閉我自己的問題......) – zmbq

回答

0

它只是Neo4j瀏覽器可視化的方式,僅此而已。既然你有兩個節點,Neo4j就擁有它需要的一切(指針)來知道它們之間存在關係(並顯示它)。如果你以編程方式處理結果(使用Java或其他...因爲我認爲Neo4j瀏覽器不會是「生產」結果),您將能夠按照您的意願處理結果。如果你只對名稱感興趣而不是實際的節點,只要做

MATCH (a:Person), (i:Person) 
WHERE a.name='Abraham' and i.name='Isaac' 
RETURN a.name, i.name 

希望這會有所幫助。

問候, 湯姆