2014-01-09 49 views
3

我想要做這樣的事情在暗號:迭代通過與之相匹配的集合,並創建條款

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。我如何在這裏實現我想要的功能?或者我在咆哮錯誤的樹 - 我沒有掌握一些使我沒有必要這樣做的東西?

回答

7

這是不允許的,而是使用頂級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) 
+0

正是我一直在尋找,謝謝 – drewmoore

+0

如果有一個數M(表示一些計數),那麼我們怎樣才能實現p .ID在[2到M] – GvanJoic

+2

這應該在FOREACH文檔中,恕我直言。然後匹配是很多語言中常見的習慣用語,所以如果讓它聲稱Cypher的方式不同,那將是非常好的! –

相關問題