在Neo4j
如果我有s:school o:office每个标签都有100个节点
我需要在Cypher中创建一个关系,以匹配学校之一和只有一个共享相同ID的办公室
如何找到这个?
答案 0 :(得分:0)
更多详细信息会很有用,但如果您拥有每一方的属性,则MATCH
和CREATE
可以这样:
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)