我使用的是Neo4j 3.0.6,我想做类似的事情:
for k in keys(r):
if k >= `2015-01`:
sum(values(k)) as sum
我试过foreach但是它没有用。 在模型中,我关系的关键是一对日期和一个标准。这是一个例子:
<id>... 2015-01,c:500 2015-02,c:23 2015-03,c:900 2015-01,r:56
预期的结果:
sum
923
所以,当它大于2015-01
时,我希望得到标准c的总和
谢谢
答案 0 :(得分:1)
MATCH (origin:AirportFR)
WHERE origin.code IN ['JFK', 'ATX']
MATCH (destination:AirportFR)
WHERE destination.code IN ['BUY', 'PUQ']
MATCH (origin) - [r] - (destination)
UNWIND [k IN KEYS(r) WHERE split(k, ',')[0] >= '2015-01' AND split(k, ',')[1] = 'c'| r[k] ] AS c_values
RETURN SUM(c_values)
SUM
是一个聚合函数,需要从多行收集数据,因此您必须将所需的属性放入行中。要生成这些行,您将需要UNWIND
每行的密钥的过滤列表。但如下所述,请认真考虑更改数据模型,以便不必在密钥上运行字符串分析。