2016-08-05 17 views
0

sample graphCypher Abfrage Unterstützung

Hallo, Für das obige Diagramm, brauchen Ihre Hilfe mit der Chiffre-Abfrage für das folgende Szenario.

1) geben Sie alle Knoten mit der Beziehung R1 zurück, die mit dem Knoten R1 verbunden sind. Ich möchte S1, S2, S3 als die Ausgabe der Abfrage

bekommen 2) Von den verbleibenden Knoten R2, R3 etc., wenn keine direkte Beziehung hinzugefügt wird, gibt es eine Möglichkeit, den Bottom-Up-Knoten dh S1, S2 usw. von Knoten R5

Schätzen Sie Ihre Eingaben

+0

Ich bin neu, wird im folgenden Neo4j, was ich versucht .. Alle RNode und SNodes haben die Etiketten. Erhalten Sie jedoch nicht die richtigen Knoten MATCH (: RNode {Name: 'R1'}) - (SNode) RETURN (SNode) – j2eeuser

+0

In Ihrem Beispiel ist SNode ein Variablenname. Sie müssen hier eine Bezeichnung haben, wenn SNodes unterschiedliche Typen von Ihren anderen Knoten sind, sonst passt dies auf jeden Knoten, der mit R1 verbunden ist. Vielleicht möchten Sie das Cypher dev-Handbuch erneut lesen oder das Lernprogramm in der Browser-App durchlesen, um sich mit der Cypher-Syntax vertraut zu machen. – InverseFalcon

+0

Das funktioniert, MATCH (: RNode {Name: 'R1'}) - [*] - (n: S1) zurück – j2eeuser

Antwort

1

Ihr Diagramm fehlt Knoten Etiketten (dh Typen), wenn alle Knoten des gleichen Typs sind und die Namen sind R1 ... S5 dann : 1)

MATCH (node:Node)-[:R1]->(x) where node.name ="R1" 
RETURN x 

dies bedeutet, dass alle Knoten finden, die connecte sind d zu einem Knoten mit dem Namen R1 durch die Beziehung R1

2) Ihre Frage ist nicht klar, versuchen Sie, alle S-Knoten mit R5 zu finden? gegeben R5

MATCH(node:Node)-[:*1-7]-(node-s:Node) where node.name="R5" AND node-s.name =~ "S.*" 
RETURN (node-s) 

der [:*1-7] bedeutet Weg der Länge 1 bis 7

Dies wäre einfacher, wenn Ihre Knoten Etiketten hatten ...