2015-04-15 77 views
0

使用Cypher支架的節點,我怎麼能找到有x或不同類型的的多種關係的節點,並連接到y或多個不同的節點?例如,a:人可以通過「家人」,「朋友」,「同事」類型的關係連接到b:Person。暗號:尋找基於其多個不同的關係類型

我們如何找到一個,使得:

  • 一個有2種或多個不同的關係類型,
  • 被連接到其他至少10人

回答

1
  1. 一個具有2個或多個不同的關係類型
  2. a連接到至少10個其他人

使用此查詢與中間聚合:

MATCH (p:Person)-[r:FAMILY|:FRIEND|:COWORKER]->(other:Person) 
WITH p, count(distinct type(r)) as c, count(distinct other) as people 
WHERE c > 2 and people >= 10 
RETURN p 

(也可以離開關在查詢中提供REL-類型)

僅用於尺寸可以使用路徑表達式,這是更快。

MATCH (p:Person) 
WHERE SIZE((p)-[:FAMILY|:FRIEND|:COWORKER]->()) >= 10 
RETURN p 
+0

謝謝!有關「高級」密碼查詢教程的任何好建議? – bsuire