的合計數我所在的電子郵件圖模型在這裏:http://console.neo4j.org/r/go164nNeo4j的Cypher支架查詢到連接節點
我試圖找到一個電子郵件地址被髮送到另一個消息的數量,反之亦然。
基本上,有幾個電子郵件地址節點以及連接電子郵件地址的消息節點。這些消息和電子郵件地址,節點之間的關係是:SENT or :Received_By
他們只能走一條路,所以地址將這些格式
EmailNode1-[:SENT]->MessageNode1
MessageNode1-[:Received_By]->EmailNode2
對於每封郵件節點,只能有一個發送者,但可能有多個接收者。
我想要得到的是兩個特定電子郵件地址之間的消息總數。
這意味着在我的例子,我想獲得的集合體:非但沒有去的消息的兩個獨立罪名的
MATCH (n:EmailAddress)-->(m:Message)-->(o:EmailAddress)WHERE n.address='[email protected]' AND o.address='[email protected]'WITH n, count(DISTINCT m) AS messageCount, oRETURN n.address, messageCount, o.address
和
MATCH (n:EmailAddress)<--(m:Message)<--(o:EmailAddress)WHERE n.address='[email protected]' AND o.address='[email protected]'WITH n, count(DISTINCT m) AS messageCount, oRETURN n.address, messageCount, o.address
無論如何,我想知道是否有密碼查詢自動將這些數字加起來
MATCH (n:EmailAddress)--(m:Message)--(o:EmailAddress)
不能工作的原因是因爲可能有第三個電子郵件地址節點可能會將郵件發送到其他兩個電子郵件地址。這將使兩個電子郵件地址接收器,我不想數這些消息。
謝謝!
編輯:
嘿!其實,我可能會讓你感到困惑。我希望返回是兩個電子郵件之間的消息的聚合。的東西,將結束與
n.address messageCount o.address
[email protected] 2 [email protected]
我不能使用MATCH(N:EmailAddress的) - (m爲消息) - (O:)移轉 ,因爲它也將計算已發送到他們兩個,但是從沒有reciever
我的編輯下面解決了這個問題嗎?它現在計算節點之間的消息數量。 – mttdbrd