我需要从类似下一个函数的返回列表中获取关系的属性总和
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)
我需要一个查询,应用前面的要求,返回所有关系属性的总和。
我该怎么做?
您可以使用REDUCE 函数来计算总数:
MATCH path=((house:Building {country: 'usa'})-[rels*]-(shelf:Building {country: 'mexico'}))
RETURN path, REDUCE(s = 0, r IN rels | s + TOINTEGER(r.num)) AS total;
注意:理想情况下,您应该为num
属性(而不是字符串)存储整数值,这样您就不必在每次需要使用数值时将所有字符串值转换为整数而付出性能损失。完成此操作后,您可以删除对该TOINTEGER
函数的调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句