我需要从返回的下一个函数列表中获取 relationship 的属性总和
MATCH path=((house:Building {country: 'usa'})-[*]-(shelf:Building {country: 'mexico'}))
RETURN path;
关系可以有不同的名称,但属性具有相同的键(和不同的值),例如:
MERGE (house)-[:NAME1{num: '5'}]->(cabin)
MERGE (cabin)-[:NAME2{num: '10'}]->(shop)
MERGE (shop)-[:NAME1{num: '5'}]->(foo)
MERGE (foo)-[:NAME3{num: '30'}]->(shelf)
我需要一个查询,应用之前的要求,返回所有关系属性的总和。
我该怎么做?
答案 0 :(得分:1)
您可以使用REDUCE function计算总数:
MATCH path=((house:Building {country: 'usa'})-[rels*]-(shelf:Building {country: 'mexico'}))
RETURN path, REDUCE(s = 0, r IN rels | s + TOINT(r.num)) AS total;
注意:理想情况下,您应该为num
属性(而不是字符串)存储整数值,这样您就不必为每次将所有字符串值转换为整数而产生性能损失你需要使用数值。执行此操作后,您可以删除对TOINT
功能的调用。