neo4j - 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 中匹配的错误。如果我只使用合并,那么我将创建新的组件节点,而不是将它们与我已经拥有的组件匹配。我正在寻找可以帮助我解决此任务的查询
免责声明:我在溢出中看到了一个类似的问题,但我不太明白给出的答案,因此我提出了自己的问题。
解决方案
不幸的是,您不能MATCH
在FOREACH
子句中使用语句,但可以使用MERGE
。如果这对您有用,那没关系,否则您可以使用第二UNWIND
条语句。顺便说一句..你怎么同时使用UNWIND
and FOREACH
?你有双重嵌套的数据结构吗?
推荐阅读
- java - 如何在 build.gradle 中选择版本
- c++ - 两个线程一个使用流 Api,另一个线程 CreateFile 失败并出现错误 ERROR_SHARING_VIOLATION
- html - 仅更改移动屏幕的标题背景
- clojure - 使用 lein-ring 并将处理程序包装在函数中时,防伪令牌无效?
- python - 来自:运行 django-admin.py 时无法读取 /var/mail/django.utils.version
- python-3.x - 在 Web 应用程序中转换 Jupyter 笔记本代码的最佳方法
- react-native - 如何从标头组件中获取价值?反应导航
- python - 如何使用请求将某些内容转换为 json
- sql-server - 我在查询 sql 中遇到问题,此问题 Msg 8156,Level 16,State 1,Line 77 列 'flag_valid' 为 'd' 指定了多次
- c++ - 关于在 GCC 中添加向量比较指令后端的问题