Ich habe ein Diagramm. Einige Knoten spielen z. Ein Knoten Leena hätte auch einen weiteren Avatar AltLeena. Es kann viele Avatare von Leena geben.Wie Rollen von Knoten in Pfadausgabe auszuschließen
create (jacob {Desc:"Jacob",level:"start"})
,(leena{Desc:"Leena"})
,(bob{Desc:"Bob",level:"end"})
,(brad{Desc:"Brad"})
,(jacob)-[:LIKES]->(leena)
,(leena)-[:LIKES]->(bob)
,(leena)-[:LIKES]->(brad)
,(jacob)-[:FRIENDS]->(brad)
,(kyle{Desc:"Kyle",level:"start"})
,(rick{Desc:"Rick"})
,(kyle)-[:LIKES]->(leena)
,(kyle)-[:LIKES]->(rick)
,(rick)-[:LIKES]->(brad)
,(rick_avatar{Desc:"AltRick",Type:"Avatar"})
,(leena_avatar{Desc:"AltLeena",Type:"Avatar"})
,(bill{Desc:"Bill"})
,(bill_avatar{Desc:"AltBill",Type:"Avatar"})
,(maya{Desc:"Maya",level:"end"})
,(kyle)-[:LIKES]->(rick_avatar)
,(rick_avatar)-[:LIKES]->(brad)
,(jacob)-[:LIKES]->(leena_avatar)
,(leena_avatar)-[:LIKES]->(brad)
,(brad)-[:LIKES]->(bill)
,(brad)-[:LIKES]->(bill_avatar)
,(bill)-[:LIKES]->(maya)
,(bill_avatar)-[:LIKES]->(maya);
Jetzt im CQL, ich versuche Pfade zwischen 2 Knoten zu erreichen, wie folgende
Wenn Startknoten und Endknoten sind nicht avatar , Rückwege, die keine Avatarknoten haben
Wenn einer der Start- und Endknoten ein Avatar ist, geben Sie die Pfade wh zurück ich habe keinen Avatar Knoten in-zwischen
Um dies zu lösen, ich noch einer Eigenschaft Typ eingeführt: ‚Original‘ in Nicht-Avatar Knoten und versuchte, diese Abfrage
match p=({level:'start'})-[:LIKES*1..2]->({Type:'Original'})-[:LIKES*1..2]->({level:'end'}) return p
Aber das ist immer noch die Rückkehr mir falsche Ergebnisse. Irgendeine Lösungsmöglichkeit? Oder ich gehe einen falschen Weg?
Dank
Das Problem ist die [: LIKES * 1..2] ist die passenden Knoten, die Sie nicht wollen. –