Neo4j, как создать несколько отношений с одним узлом? - PullRequest
0 голосов
/ 08 ноября 2019

Сейчас я создаю отношение один-к-одному со следующим запросом Cypher

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

Теперь моя проблема у меня несколько roleUuid, как roleUuid1, roleUuid2, roleUuid3 и т. Д. Теперь я хочусоздать связь с пользователем (uuid) с несколькими roleUuid

Как это можно сделать в запросе Cypher?

1 Ответ

1 голос
/ 08 ноября 2019

Используя параметр roleUuids, содержащий список UUID ролей, вы можете ввести

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} для улучшения читабельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...