Neo4j如何与单个节点创建多个关系?

时间:2019-11-08 15:45:00

标签: neo4j cypher

现在我正在通过以下Cypher查询创建一对一关系

@Query("MATCH (R:`User`{uuid:{uuid}}), (L:`Role`{uuid:{roleUuid}}) CREATE (R)-[r:`FILTER_ON`]->(L);")

现在我的问题是我有多个roleUuid,例如roleUuid1roleUuid2roleUuid3等,现在我想与User(uuid)建立关系多个roleUuid

如何在Cypher查询中完成?

1 个答案:

答案 0 :(得分:1)

使用包含角色UUID列表的参数roleUuids,可以发出

MATCH (R:`User`{uuid:{uuid}}), (L:`Role`)
WHERE L.uuid IN {roleUuids}
CREATE (R)-[r:`FILTER_ON`]->(L)

或者如果您在uuid属性上具有索引:

UNWIND {roleUuids} AS roleUuid
MATCH (R:`User`{uuid:{uuid}}), (L:`Role`{uuid:roleUuid})
CREATE (R)-[r:`FILTER_ON`]->(L)

一句话:如果您使用的是Neo4j的最新版本,建议您使用$parameter语法代替{parameter}语法,以提高可读性。