首页 > 解决方案 > Neo4j:FOREACH 中的匹配节点

问题描述

我正在尝试使用下面的代码将我的程序集合并到几个组件

UNWIND $data as row
MERGE (a:Assembly)
ON CREATE SET a+= row
WITH a
UNWIND $components as components
FOREACH(id IN components.uuid | MATCH (c:Component {_uuid: id})
MERGE (a)-[:RECIPE]->(c))

但是我得到一个不允许在 FOREACH 中匹配的错误。如果我只使用合并,那么我将创建新的组件节点,而不是将它们与我已经拥有的组件匹配。我正在寻找可以帮助我解决此任务的查询

免责声明:我在溢出中看到了一个类似的问题,但我不太明白给出的答案,因此我提出了自己的问题。

标签: neo4jcypher

解决方案


不幸的是,您不能MATCHFOREACH子句中使用语句,但可以使用MERGE。如果这对您有用,那没关系,否则您可以使用第二UNWIND条语句。顺便说一句..你怎么同时使用UNWINDand FOREACH?你有双重嵌套的数据结构吗?


推荐阅读