在Cypher中创建一个关系,以便仅在每个节点之间进行匹配

时间:2016-01-13 05:50:57

标签: neo4j

在Neo4j

如果我有s:school o:office每个标签都有100个节点

我需要在Cypher中创建一个关系,以匹配学校之一和只有一个共享相同ID的办公室

如何找到这个?

1 个答案:

答案 0 :(得分:0)

更多详细信息会很有用,但如果您拥有每一方的属性,则MATCHCREATE可以这样:

MATCH (school:School), (office:Office)
WHERE school.property = office.property
CREATE (school)-[:YOUR_RELATIONSHIP_TYPE]->(office)

如果您使用的是Neo4j 2.3.x,您可能会收到有关笛卡尔产品的警告。它应该不是一个大问题,每个只有100个节点,但对于更大的数据集,这应该更有效:

MATCH (school:School)
WITH school, school.property AS property
MATCH (office:Office {property: property})
CREATE (school)-[:YOUR_RELATIONSHIP_TYPE]->(office)

当然,您应该确保Office(property)

上有索引或约束