0
我想親自學習neo4j,並遇到一些困難。假設我們有一個圖表,並且在關係中有:DIRECTED
和:ACTED_IN
。查找所有至少有兩個離任關係的節點
問:如何返回所有有兩個這些關係爲那些即將離任的節點(我將不勝感激的答案是比較一般的,並可以擴展到k
固定的關係,而不是僅僅k=2
作爲例子?)?
我想親自學習neo4j,並遇到一些困難。假設我們有一個圖表,並且在關係中有:DIRECTED
和:ACTED_IN
。查找所有至少有兩個離任關係的節點
問:如何返回所有有兩個這些關係爲那些即將離任的節點(我將不勝感激的答案是比較一般的,並可以擴展到k
固定的關係,而不是僅僅k=2
作爲例子?)?
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
您可以使用size
運營商和匹配上返回的數字,我認爲:
MATCH (a:Label) where size((a)--()) = 2
請注意,您也可以爲關係指定了方向:
MATCH (a:Label) where size((a)-->()) = 2 //For outgoing relationships.
謝謝你的回答,但沒有這個命令將返回所有至少有** **任意3種關係的節點? – thanasissdr
哦,是的,我的不好,我糾正了這一點。 – Supamiu
再一次,我不應該在我的代碼中聲明我希望這兩個特定關係滿足的地方嗎? – thanasissdr