簡體   English   中英

Neo4j返回節點通過給定標簽和屬性的關系連接

[英]Neo4j return nodes connected by relationships of a given label and property

我試圖找到通過具有給定標簽和給定屬性的關系連接的節點。

例如,我要查找通過關系Edge連接為myID 123所有節點。

我從此查詢開始,該查詢返回有關關系的數據。

MATCH ()-[r:Edge{myID: "123"}]->()RETURN r;

計算這些關系

MATCH ()-[r:Edge{myID: "123"}]->()RETURN count(r)

我得到45。

然后,我創建了以下內容:

MATCH (a)-[r:Edge{myID: "123"}]->(b)RETURN a,b,r LIMIT 25

但是,這不起作用:它似乎返回的節點比預期的要多得多:首先, LIMIT不是限制性的,因此子圖變得非常大且難以分析,但似乎它甚至返回了具有myID屬性不同的節點關系。大於123 ,肯定大於45。

我怎樣才能做到這一點?

編輯

以下圖為例:

//create 2 nodes
CREATE (: myNode{NID : 1});
CREATE (: myNode{NID : 1});
//create 2 relationships:
MATCH (n1:myNode{NID:1})
MATCH (n2:myNode{NID:1})
MErGE(n1)-[r:Edge{myID:2}]->(n2);

MATCH (n1:myNode{NID:1})
MATCH (n2:myNode{NID:2})
MErGE(n1)-[r:Edge{myID:2}]->(n2);

可以嘗試以下將返回兩條邊的查詢來查看問題:

MATCH p=(a)-[r:Edge{myID : 1}]->(b) return p limit 1;

MATCH (a)-[r:Edge{myID : 1}]->(b) return a,r,b limit 1;

如果使用neo4j瀏覽器輸入查詢並可視化結果,則應注意瀏覽器的“連接結果節點”選項。 啟用該選項后,瀏覽器會自動查詢(並顯示)Cypher查詢返回的節點之間的關系。 (請注意,返回的關系引用了兩個節點。)

通過單擊瀏覽器窗口左側的齒輪圖標,滾動到“瀏覽器設置”面板的底部,並選中/取消選中“連接結果節點”框,可以啟用/禁用“連接結果節點”選項。

默認情況下,Neo4J Browser嘗試擴展返回節點時在視圖中顯示的節點。

你能試一下嗎

MATCH p=(a)-[r:Edge{myID: "123"}]->(b) return p limit 25.

Neo4J Browser不應立即嘗試擴展節點。

暫無
暫無

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

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