有兩種節點類型,Account
和Transfer
。 A Transfer
表示資金在Account
節點之間的移動。節點可以有任意數量的輸入和輸出節點。例如,三個Accounts
可能會以任何方式向其他16個Accounts
發送40美元(合計120美元),並且它可以工作。Neo4j/Cypher:返回節點本身內節點之間關係值的總和
Transfer
對象沒有發送或接收的資金總和 - 它們只存儲在關係本身中。我想在密碼查詢中計算這個值,並將其作爲返回的Transfer
對象的一部分返回,不是單獨的。 (類似於SQL JOIN)
我是Neo4j + Cypher的新手;到目前爲止,我已經得到了查詢是這樣的:
MATCH (tf:Transfer {id:'some_id'})
MATCH (tf)<-[in:IN_TO]-(in_account:Account)
MATCH (tf)-[out:OUT_TO]->(out_account:Account)
RETURN tf,in_account,in,out_account,out, sum(in.value) as sum_in, sum(out.value) as sum_out
如果我管理這個數據庫,我只是預先計算的款項,並將其存儲在Transfer
性能 - 但是這不是在這個時候的選項。
TL;博士:我想存儲sum_in
和sum_out
在返回tf
對象。
h/t到Gábor的錯字接收。 –