有两种节点类型,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的错字接收。 –