[英]Cypher: Loop over distinct nodes in multiple paths
我有一个带有节点的 neo4j 图,我需要在从开始节点到结束节点的路径上的所有节点上增加一个标志。 但是我只需要增加这个标志一次,即使它位于多个路径上。
我使用以下查询,但显然它循环遍历所有路径,因此标志不止一次递增:
MATCH paths = (end:Operation)-[DEPENDS_ON*]->(start:Operation )
WHERE id(start) = 304
AND end.final = true
UNWIND [ops IN nodes(paths)] AS op
SET op.flag = op.flag + 1
如何展开或收集所有路径上的不同节点然后增加属性?
那这个呢?
WITH COLLECT(DISTINCT ops) AS distinctOps
MATCH paths = (end:Operation)-[DEPENDS_ON*]->(start:Operation )
WHERE id(start) = 304
AND end.final = true
UNWIND nodes(paths) AS ops
WITH COLLECT(DISTINCT ops) AS distinctOps
FOREACH (op IN distinctOps |
SET op.flag = op.flag + 1
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.