Innerhalb einer Grafik gibt es eine Gruppe G1 - diese Gruppe G1 hat 3 Untergruppen S1, S2 und S3. Die Beziehung wird als IS_SUBGROUP_OF klassifiziert. G1 selbst ist wieder eine Untergruppe einer anderen Gruppe, nennen wir es D1. D1 hat viele Untergruppen, wobei G1 nur eins ist.Fahrgraph nur innerhalb einer Ebene
Einen Benutzer U1 haben, der Mitglied einer Untergruppe von G1 ist - hier S1. Ich möchte eine Abfrage erstellen, die in der Lage ist, alle Benutzer der Untergruppe S1 zu sammeln, von Benutzer U1 nach S1 und von dort nach G1 zu gehen, die Benutzer von G1 und von G1 nach S2 und S3 zu holen und alle Benutzer von S2 und S3 zu holen auch. Das Endergebnis sollte alle Benutzer in den Untergruppen S1, S2 und S3 von der Elterngruppe G1 einschließlich der Benutzer von G1 sein.
Ich habe versucht:
MATCH (d:User) --> (S1:Subgroup)-[:IS_SUBGROUP_OF*0..]->(G1:Group)
WHERE d.name = "U1"
RETURN d
Leider queren ich alle Gruppen und geben wieder alle Benutzer einer Gruppe in der Grafik. Ich habe versucht, die Sprunghöhe in der Beziehung zu ändern (z. B. nur 1), aber es ist nicht gelungen. Haben Sie einen Hinweis, wie Sie die Abfrage erstellen, um nur diese Teilmenge von Benutzern zu erhalten?
Die Namen der Gruppen sind nur für das Beispiel und nicht in der realen Welt bekannt - alles was ich weiß ist der Benutzername (hier: U1) - und von dort muss ich verschiedene Gruppen finden je nachdem, wo der Benutzer ist. In der Abfrage kann ich also nicht mit Namen von Gruppen arbeiten, sondern nur mit Variablen, da diese nicht bekannt sind.
* EDITED *
Sorry für die Verwirrung, labeld I S1 fälschlicherweise als Untergruppe, sondern nur die Beziehung erwähnt 'IS_SUBGROUP_OF', so dass alle Gruppenknoten haben die Bezeichnung 'Gruppe', D1 würde auch die Label 'Gruppe'. Ich füge auch das Beziehungslabel für Benutzer hinzu, so sieht die Aussage jetzt so aus:
MATCH (d:User) -[:IS_MEMBER_OF]-> (S1:Group)-[:IS_SUBGROUP_OF*0..]->(G1:Group)
WHERE d.name = "U1"
RETURN d
S1, S2, S3 haben die Bezeichnung "Untergruppe", G1 hat "Gruppe", was ist mit D1? Und wie heißt die Beziehung zwischen einer (Unter-) Gruppe und einem Benutzer? Können Sie die Frage damit aktualisieren? –
Ich korrigierte und erweiterte die Abfrage von meiner Frage. – Balael