如何解决无法使用 MATCH 和 MERGE
我试图创建一个节点层次结构,首先,找到任何现有节点(使用 MATCH),然后通过重用现有节点或创建新节点来创建关系,如果任何节点不存在(使用合并)。
谁能解释一下为什么这段代码没有做任何事情:
CALL apoc.load.jdbc(...) YIELD row
MATCH (t:Taxonomy {key:row.TermKey})
MATCH (tp:Taxonomy {key:row.ParentKey})
MERGE (t)-[:CHILD_OF]->(tp)
但是这个就可以了:
CALL apoc.load.jdbc(...) YIELD row
MERGE (t:Taxonomy {key:row.TermKey})
MERGE (tp:Taxonomy {key:row.ParentKey})
MERGE (t)-[:CHILD_OF]->(tp)
我正在查看 Neo4j 手册,他们的示例确实如此,但由于某种原因对我不起作用。 Neo4j manual screenshot
解决方法
MATCH 子句仅查看节点或模式是否存在,如果找到则返回该节点或模式,而不会创建节点或模式,另一方面, MERGE 子句查找节点或模式,如果不存在则创建一个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。