在使用neo4j-shell的Neo4j Cypher中,我可以基于如下属性与单个节点建立关系:
match (p:Taxon{taxId:'9605'}),(t:Taxon{parentTaxId:p.taxId})
create unique (p)-[:PARENT_OF]->(t);
在p中设置taxId时,它按预期运行,并根据需要创建关系。但是,当我尝试通过将查询更改为:
将其应用于所有节点时match (p:Taxon),(t:Taxon{parentTaxId:p.taxId})
create unique (p)-[:PARENT_OF]->(t);
我收到错误:
NotFoundException:未知标识符
t
。
我不明白为什么现在无效。我错过了一些明显的东西吗?
答案 0 :(得分:1)
我认为您需要将其分解为WHERE子句:
MATCH (p:Taxon),(t:Taxon)
WHERE t.parentTaxId=p.taxId
CREATE UNIQUE (p)-[:PARENT_OF]->(t);