2016-08-17 97 views
0

我想親自學習neo4j,並遇到一些困難。假設我們有一個圖表,並且在關係中有:DIRECTED:ACTED_IN查找所有至少有兩個離任關係的節點

問:如何返回所有有兩個這些關係爲那些即將離任的節點(我將不勝感激的答案是比較一般的,並可以擴展到k固定的關係,而不是僅僅k=2作爲例子?)?

回答

0

1)第一個選項(至少有這些節點two relations):

MATCH()<-[:DIRECTED]-(I)-[:ACTED_IN]->() 
RETURN distinct I 

2)如果你想檢查組關係類型:

// Declare an array of type 
WITH ['DIRECTED','ACTED_IN'] as rtypes 
// Select connected nodes 
MATCH (I)-[r]->() 
WITH I, 
    rtypes, 
    // Filter the types of relationships for this node on the basis of a given array types 
    FILTER(rt in collect(distinct type(r)) WHERE rt IN rtypes) as types 
// The resulting array size must match the specified array 
WHERE size(types) = size(rtypes) 
RETURN I 
0

您可以使用size運營商和匹配上返回的數字,我認爲:

MATCH (a:Label) where size((a)--()) = 2 

請注意,您也可以爲關係指定了方向:

MATCH (a:Label) where size((a)-->()) = 2 //For outgoing relationships. 
+0

謝謝你的回答,但沒有這個命令將返回所有至少有** **任意3種關係的節點? – thanasissdr

+0

哦,是的,我的不好,我糾正了這一點。 – Supamiu

+0

再一次,我不應該在我的代碼中聲明我希望這兩個特定關係滿足的地方嗎? – thanasissdr