Ich fange gerade mit Neo4j an und ich kämpfe ein bisschen auf dem folling Fall. In Anbetracht der zeigt dieses Diagramm:Neo4j cypher alle Knoten von Kindern zurückgeben
Als „theo“ Ich will die Liste der anderen Benutzernamen zurückzukehren, die auch Glossare verwalten können. Wenn Sie Mitglied einer übergeordneten Gruppe sind, sollten Sie dieselben Berechtigungen wie Ihre Kinder erhalten.
Zum Beispiel sollten wir für "theo" Sara und Bob zurückgeben, da sara Mitglied von PoleManager ist, einem Elternteil der ProjectManager-Gruppe. Bob ist Mitglied der ProjectManager-Gruppe, die berechtigt ist, Glossare zu verwalten.
Bisher habe ich die folgende Abfrage aber nicht zurück sara als Kandidat:
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
Ich bin auch zu einem besseren Ideen offen diese Grafik darzustellen.
Ich habe falsch die '[: CHILD_OF *]' wie ich, obwohl die '*' würden mit "0" übereinstimmen, aber es scheint es nicht :( –
Eigentlich @InverseFalcon die erste Abfrage, die nützlich ist zu wissen " was sind die Benutzer Theo kann Glossare verwalten von "funktioniert nicht. Es gibt nur mir' [bob] '. Irgendeine Idee warum? –
Ja, ein Fehler in meiner Abfrage. Ich habe es nur behoben, sehen, ob das für Sie arbeiten wird. – InverseFalcon