2016-08-19 20 views
0

我有一個相當奇特的圖形數據庫結構:我的節點可以根據日期有彼此之間的幾個關係。例如,「約翰」可以與「傑克」與財產日期= 2016/02/12和財產長度= 12以及與財產日期= 2016/02/23的另一種關係「財產」長度= 23。Neo4J - 返回一個獨特的關係,聚合相同節點之間的幾個realtions

("John") - [:talked {date:"2016/02/12",legnth:12}] - ("Jack")

("John") - [:talked {date:"2016/02/23",legnth:23}] - ("Jack")

我想回到的關係,這將是長度屬性(長度= 35)和最早日期的總和:

("John") - [:talked {date:"2016/02/12",legnth:35}] - ("Jack")

哪有我在Cypher中完成了這個任務嗎?

回答

1

當然可以。只需匹配它們並返回聚合。

match (p1:Person {name: 'John'})-[r:TALKED]-(p2:Person {name: 'Jack'}) 
return p1 
, p2 
, sum(r.length) as total_length 
, min(r.date) as first_date 
+0

非常感謝Dave,實際上它非常接近我想要做的事情,除非我不想刪除原始關係,我只想返回用於顯示目的的聚合關係(和不要將它保存在數據庫中)。 –

+0

已更新的答案,以反映您在更新中要求的內容 –

+0

完美地返回行,非常感謝Dave!你知道有什麼技巧可以讓Neo4J的圖形界面除了2個返回的節點之外還畫出這個唯一的關係嗎? –

相關問題