3
在我的域中,一個節點可以有多個相同類型的關係到其他實體。每個關係都有幾個屬性,我想通過至少兩個關係來獲取給定屬性的節點。如何獲得與Neo4j Cypher中給定屬性具有給定數量傳出關係的節點?
EG:節點之間的關係具有屬性year
。如何找到與year
設置爲2012
至少有兩個傳出關係的節點?
爲什麼Chypher
查詢到目前爲止看起來像這樣(語法錯誤)
START x = node(*)
MATCH x-[r:RELATIONSHIP_TYPE]->y
WITH COUNT(r.year == 2012) AS years
WHERE HAS(r.year) AND years > 1
RETURN x;
我也試過嵌套查詢,但我相信它不是在Cypher
不允許的。最接近的是下面的,但我不知道如何擺脫節點的值爲1:
START n = node(*)
MATCH n-[r:RELATIONSHIP_TYPE]->c
WHERE HAS(r.year) AND r.year == 2012
RETURN n, COUNT(r) AS counter
ORDER BY counter DESC
我很好奇是否'r.year'部分是由索引供電?無論如何,這不是更快嗎? START r = relationship:yearIndex('year:2012') MATCH n- [r:RELATIONSHIP_TYPE] - > c WITH n,COUNT(r)AS rc WHERE rc> 1 RETURN n,rc' – ulkas
@ulkas它不是,但他們沒有提到問題中的索引。如果可能,您應該避免使用節點(*)並在開始查找時使用索引。 :) –