簡體   English   中英

Neo4j獲得1度節點之間的邊緣

[英]Neo4j get edges between 1st degree nodes

假設我具有定義為A-> B,A-> D,C-> A,B-> C,B-> D的圖形關系。 我需要在Neo4j中獲得以下子圖 -

  1. 獲取節點的所有1度連接(indegree或outdegree),即對於節點A,它將是B,C,D
  2. 獲得這些第一度節點之間的所有邊緣。 由於B,C,D是1度連接,邊緣將是B-> C,B-> D.

對於第1部分,我有以下查詢 -

MATCH (s:Node)->(d:Node) 
WHERE s.name = 'A' OR d.name = 'A'

我無法在同一查詢中獲取數據的第二部分。 我需要遍歷所有節點嗎?

這是一個簡單的模式,表示您從節點開始路徑,然后轉到它旁邊的節點,然后其中一個可以返回到起始節點:

MATCH (A:Node {name:'A'}) WITH A
MATCH (A)--(FD1:Node)-[r]-(FD2:Node)--(A) 
  WHERE ID(FD1) > ID(FD2)
RETURN FD1, r, FD2

PS並記住你不能指定關系的方向。

暫無
暫無

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

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