Je débute avec Neo4j et je me bats un peu sur le cas. Étant donné le graphique suivant:Chiffre Neo4j pour retourner tous les noeuds des enfants
Comme « theo », je veux retourner la liste des autres noms d'utilisateurs qui peuvent également gérer glossaires. Être membre d'un groupe parent devrait vous donner accès aux mêmes autorisations que vos enfants. Par exemple, pour "theo", nous devrions retourner sara et bob car sara est membre de PoleManager qui est un parent du groupe ProjectManager. Bob est membre du groupe ProjectManager qui a l'autorisation de gérer les glossaires.
Jusqu'à présent, j'ai la requête suivante mais il ne retourne pas sara comme candidat:
MATCH (me:User{name:"theo"})-[:MEMBER_OF]->(g:Group), (g)-[:CAN_MANAGE]->(Asset{name:"Glossaries"}), (users:User)-[:MEMBER_OF]->(g) RETURN me.name AS Me, collect(users.name) AS Users UNION MATCH (me:User{name:"theo"})-[:MEMBER_OF]->(Group)<-[:CHILD_OF*]-(children:Group), (children)-[:CAN_MANAGE]->(Asset{name:"Glossaries"}), (users:User)-[:MEMBER_OF]->(children) RETURN me.name AS Me, collect(users.name) AS Users
Je suis aussi ouvert à de meilleures idées pour représenter ce graphique.
Je me suis trompé le '[: CHILD_OF *]' comme je si le '*' correspondrait '0' aussi bien mais il semble qu'il ne fait pas :( –
En fait @InverseFalcon la première requête, qui est utile de savoir" quels sont les utilisateurs Theo peut gérer les glossaires de "ne fonctionne pas.Il me renvoie seulement [bob]'. Une idée pourquoi? –
Yep, une faille dans ma requête.Je viens de le réparer, voir si cela va fonctionner pour vous. – InverseFalcon