Neo4j 使用Reduce函数时排除没有属性的节点
我有一个工厂节点和一组使用工厂创建的节点。工厂是我人生道路的起点。我想转到所有创建的节点,对一个属性执行一些算术运算,并合计结果。问题是factory节点没有该属性,我不知道如何从路径中删除该节点或在reduce函数期间忽略它。这是我的查询的简化形式 开始FactoryNode=node(30)匹配路径=FactoryNode-[:CREATEDNODES]->CreatedNode返回reduce(总计=0,节点中的n个(路径):总计+n.Score) 服务器变得疯狂,因为FactoryNode没有属性分数Neo4j 使用Reduce函数时排除没有属性的节点,neo4j,cypher,Neo4j,Cypher,我有一个工厂节点和一组使用工厂创建的节点。工厂是我人生道路的起点。我想转到所有创建的节点,对一个属性执行一些算术运算,并合计结果。问题是factory节点没有该属性,我不知道如何从路径中删除该节点或在reduce函数期间忽略它。这是我的查询的简化形式 开始FactoryNode=node(30)匹配路径=FactoryNode-[:CREATEDNODES]->CreatedNode返回reduce(总计=0,节点中的n个(路径):总计+n.Score) 服务器变得疯狂,因为FactoryNod
请帮忙 考虑检查属性,考虑检查属性,不确定是否可以在reduce表达式中使用函数,但可以尝试吗
START FactoryNode = node(30)
MATCH Path = FactoryNode -[:CREATEDNODES]-> CreatedNode
RETURN reduce(total = 0, n in nodes(Path) : total + COALESCE(n.Score?,0));
不确定是否可以在reduce表达式中使用函数,但可以尝试一下吗
START FactoryNode = node(30)
MATCH Path = FactoryNode -[:CREATEDNODES]-> CreatedNode
RETURN reduce(total = 0, n in nodes(Path) : total + COALESCE(n.Score?,0));
是的,这是一个很好的方法。或者,如果是更复杂的事情,你可以在减少之前进行过滤。是的,这是一个很好的方法。或者,如果是更复杂的事情,你可以在减少之前进行过滤。