【问题标题】:Neo4j match node with Id and create relationshipNeo4j 将节点与 Id 匹配并创建关系
【发布时间】:2016-07-25 10:26:20
【问题描述】:

我需要匹配两个具有特定 ID 的现有节点,然后在这些节点之间创建关系。 下面是我的密码。但是当我执行此操作时,我总是没有完成任何更改。

MATCH(i:`Mechanical Component`)
where ID(i)=9912
with(i)
match(d:Features{name:"Mechanical Component"})
with(d)
where ID(d)=9934
MERGE (i)-[:FEATURES]->(d)

【问题讨论】:

  • 为什么在idname 上都匹配Features 节点?你确定2是一致的吗?你也会在第二个WITH 输掉i

标签: neo4j


【解决方案1】:

正如Frank Pavageau 在 cmets 中所说,您在第二个WITHclause 中没有将 i 与 d 一起传递,从而导致您的查询出错。这是您需要的更正查询:

MATCH(i:Mechanical Component)
where ID(i)=9912
with(i)
match(d:Features{name:"Mechanical Component"})
with(d,i)
where ID(d)=9934
MERGE (i)-[:FEATURES]->(d)

请记住,实际上不建议使用内部 id,因为它是生成的并且可能会更改(请参阅Should we use the Neo4J internal id?)。您可能应该使用自己的唯一 ID(带有约束)并使用此 ID 匹配您的节点。

【讨论】:

  • 谢谢。但是我没有发现您提供的密码与我的密码有任何区别。我如何在第二场比赛中携带 i。对不起这个琐碎的问题,但我是新手,不知何故觉得 neo4j 文档没有深入研究这些细节。
猜你喜欢
  • 2020-03-18
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多