在使用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现在无效。我错过了什么明显的东西吗?
我认为你需要把它分成WHERE子句:
MATCH (p:Taxon),(t:Taxon)
WHERE t.parentTaxId=p.taxId
CREATE UNIQUE (p)-[:PARENT_OF]->(t);