FOREACH 与 cypher 中的集合

Gra*_*eon 2 foreach neo4j cypher

我有一个使用此创建的 rel 集合

MATCH (u:user)-[i:INTEREST]->(t:term)
WITH COLLECT([i,t]) AS its
RETURN its
Run Code Online (Sandbox Code Playgroud)

它正确返回 rels 和节点的数组。另请参阅http://console.neo4j.org/r/cw7saq

现在我想设置关系的属性,但不知道如何访问数组中的 rels。试过这个,

MATCH (u:user)-[i:INTEREST]->(t:term)
WITH COLLECT([i,t]) AS its
FOREACH (it IN its |
         SET it[0].testprop=89292" )
Run Code Online (Sandbox Code Playgroud)

但它返回一个错误

Error: Invalid input '[': expected an identifier character, node labels, a property map, a relationship pattern, '(', '.' or '=' (line 4, column 16)
"         SET it[0].testprop=89292" )"
Run Code Online (Sandbox Code Playgroud)

有人知道执行此操作的正确语法是什么吗?

Rob*_*ita 5

任何遇到像OP提到的子集错误的人都可以用括号解决它:

MATCH (u:user)-[i:INTEREST]->(t:term)
WITH COLLECT([i,t]) AS its
FOREACH (it IN its |
     SET (it[0]).testprop=89292" )
Run Code Online (Sandbox Code Playgroud)