繁体   English   中英

Cypher:在多条路径中循环不同的节点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM