使用MATCH和CREATE子句迭代集合

时间:2014-01-09 10:10:56

标签: neo4j cypher graph-databases

我想在cypher中做这样的事情:

MATCH (n:node) WHERE n.ID = x        //x is an integer value
FOREACH (num in n.IDs: 
    MATCH (p:node) WHERE p.ID = num
    CREATE (n)-[:LINK]->(p) )

其中num是一个整数值数组,指的是需要链接到第一行中匹配的节点的节点的ID。

当我运行此查询时,收到错误:Invalid use of MATCH inside FOREACH

我正处于自学Cypher和Neo4j的早期阶段。我怎样才能在这里实现我想要的功能?或者我正在咆哮错误的树 - 我是否未能抓住使我没有必要这样做的东西?

1 个答案:

答案 0 :(得分:9)

这是不允许的,而是使用顶级MATCH,如http://gist.neo4j.org/?8332363

MATCH (n:node), (p:node)
WHERE n.ID = 1 AND p.ID in [2,3,4]
CREATE (n)-[:LINK]->(p)