将集合的结尾连接到开头

Connecting the end of a set to the beginning

我们有一组连接的节点。每个节点都有一个 link 到链中的下一个节点。当链条用完时,那个末端节点就挂在那里。请参见下图。

Node path

这些节点中的每一个都具有相同的级别,因此只要它们在链中,它们的编号就相同。所以我希望做的是提出一个密码查询,在共享相同行号的最大 ID 和 MIN ID 之间构建一个 link。所以基本上把结尾和开头联系起来。有没有聪明的方法来做到这一点?

您的问题不够清晰,但是按照以下思路思考怎么样?

// find all levels in your dataset of nodes in the chains
MATCH (n)
WHERE (n)-[:NEXT]-()
WITH COLLECT(DISTINCT n.level) AS levels
UNWIND levels AS level

// for each level, find the chain
MATCH (start {level:level})-[:NEXT*]->(end {level:level})
WHERE NOT (
            ({level:level})-[:NEXT]->(start) 
            OR 
            (end)-[:NEXT]->({level:level})
         )

// connect end to start 
MERGE (end)-[:MYRELTYPE]->(start)