Как получить роли реферируемого пользователя - PullRequest
0 голосов
/ 01 ноября 2019

Я создал User класс с некоторыми отношениями. также хочу получить отношения REFERED_BY, где развиваются отношения с уже существующим пользователем.

Я использовал запрос, чтобы получить пользователя, который связан друг с другом, но он не возвращает роли пользователя.

 MATCH (u:User)-[:REFFERED_BY]-(myMembers:User) 
 WHERE ID(u) = {0}
 RETURN myMembers

1 Ответ

0 голосов
/ 01 ноября 2019

С риском звучания слишком педантично, правильное написание - referred, но ваш вопрос иногда говорит, что тип отношения REFERED_BY, а иногда REFFERED_BY. Можете ли вы проверить, какие имена типов действительно используются в вашей БД?

Ваш запрос не ищет никаких отношений ROLE_TYPE, а только возвращает пользователей, поэтому он не возвращает никаких ролей.

Предполагая, что ваша БД использует орфографию REFERRED_BY (а вы действительно не заботитесь о направлении этого отношения), у ваших узлов роли есть метка Role, и вы ищетедля ролей узлов myMember, то это должно вернуть список ролей для каждого myMember:

MATCH (u:User)-[:REFFERED_BY]-(myMember:User)-[ROLE_TYPE]->(r:Role)
WHERE ID(u) = {0}
RETURN myMember, COLLECT(r) AS roles

Примечание: если некоторые узлы myMember не могут иметь роли, то это должно бытьиспользуется вместо, если вы хотите увидеть все myMember узлы:

MATCH (u:User)-[:REFFERED_BY]-(myMember:User)
WHERE ID(u) = {0}
OPTIONAL MATCH (myMember)-[ROLE_TYPE]->(r:Role)
RETURN myMember, COLLECT(r) AS roles
...