在Cypher中通过索引进行迭代

min*_*vor 2 neo4j cypher

说我已经匹配了一系列关系:

MATCH a-[r:BELONGS_TO]->b
Run Code Online (Sandbox Code Playgroud)

如何迭代每个关系并为其分配索引?在伪代码中:

for i in range(0, # of r's)
  r.order = i
Run Code Online (Sandbox Code Playgroud)

Wil*_*yon 9

这应该工作:

MATCH (a)-[r:BELONGS_TO]->(b)
WITH collect(r) as rels
WITH rels, range(0, size(rels)) AS is
UNWIND is AS i
WITH rels[i] as rel, i
SET rel.order = i
Run Code Online (Sandbox Code Playgroud)


Chr*_*sen 7

你可以稍微破解一下:

MATCH (a)-[r:BELONGS_TO]->(b)
WITH collect(r) as relationships
UNWIND range(0, size(relationships)-1) as x
RETURN relationships[x]
Run Code Online (Sandbox Code Playgroud)