提问者:小点点

Neo4j Cypher中的意外行为


在使用neo4j-shell的Neo4j Cypher中,我可以基于如下属性与单个节点建立关系:

match (p:Taxon{taxId:'9605'}),(t:Taxon{parentTaxId:p.taxId}) 
create unique (p)-[:PARENT_OF]->(t);

使用p中设置的分类ID,它按预期运行并根据需要创建关系。但是,当我尝试通过将查询更改为将其应用于所有节点时:

match (p:Taxon),(t:Taxon{parentTaxId:p.taxId}) 
create unique (p)-[:PARENT_OF]->(t);

我得到一个错误:

NotFoundException:未知标识符t

我不明白为什么t现在无效。我错过了什么明显的东西吗?


共1个答案

匿名用户

我认为你需要把它分成WHERE子句:

MATCH (p:Taxon),(t:Taxon)
WHERE t.parentTaxId=p.taxId 
CREATE UNIQUE (p)-[:PARENT_OF]->(t);