Ich bin neu in Cypher/Graph DBs. Ich habe ein Beispiel erstellt, um Traversalen zu verstehen, aber nicht ganz.Cypher: Gruppierung/Beziehungen
//Cypher below to create nodes.
(`0` :Person {id:'74474',Name:"Mr. Dan"}) ,
(`1` :Company {id:'1234',Name:"Company A"}) ,
(`2` :Company {id:'1111',Name:"Company B"}) ,
(`3` :Person {id:'0844',Name:"Mr.X"}) ,
(`4` :Person {id:'3455',Name:"Mr. Jack"}) ,
(`5` :Person {id:'748222',Name:"Mr.Y"}) ,
(`0`)-[:`owns` {amt:'50%'}]->(`1`),
(`4`)-[:`owns` {amt:'30%'}]->(`1`),
(`2`)-[:`owns` {amt:'20%'}]->(`1`),
(`3`)-[:`owns` {amt:'30%'}]->(`2`),
(`5`)-[:`owns` {amt:'70%'}]->(`2`)
// end
Abfrage: MATCH (p: Person) - [o: besitzt *] -> (c: Gesellschaft) wo c.Name = "Firma A" return p, o //
Dies gibt mir alle "Personen", die "Firma A" besitzen, aber ich möchte das "% Eigentum" jeder Person erhalten.
Ich kann nicht scheinen, die Werte in der Beziehung "o" zu extrahieren oder zu aggregieren. Sah einfach, aber ich scheine herausgefordert!
Irgendwelche Vorschläge?
Bitte formatieren Sie Ihren Code so, dass er für uns lesbar ist! – Skam
MATCH (p: Person) - [o: besitzt *] -> (c: Firma) wo c.Name = "Firma A" Rückkehr p, o.amt, c – logisima
@ logisima- nicht funktioniert, nicht sicher, die Absicht von Hinzufügen von c. Ich versuche, die "Amts" für jede Person zusammenzufassen. Wenn also bei Person zwei "Amts" in dem Beziehungspfad vorhanden sind, dann sollte es aggregieren (in diesem Fall multiplizieren). Aber selbst wenn ich sie zusammenfassen kann, ist das ein Anfang. –