Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Neo4j - Auswählen von Daten mit MATCH mit Cypher

Cyphers MATCH -Anweisung können Sie Daten finden, die einem bestimmten Kriterium entsprechen. Sie können MATCH verwenden um die Daten zurückzugeben oder eine andere Operation damit auszuführen.

Das MATCH -Anweisung wird verwendet, um ein bestimmtes Kriterium zu erfüllen, aber sie gibt nicht zurück die Daten. Um irgendwelche Daten von einem MATCH zurückzugeben -Anweisung müssen wir noch den RETURN verwenden Klausel.

Einen Knoten abrufen

Hier ist ein einfaches Beispiel für die Verwendung eines MATCH Anweisung zum Abrufen eines Knotens:

MATCH (p:Person)
WHERE p.Name = "Devin Townsend"
RETURN p

Das WHERE -Klausel funktioniert genauso wie WHERE von SQL -Klausel, da sie es Ihnen ermöglicht, die Ergebnisse einzugrenzen, indem Sie zusätzliche Kriterien angeben.

Sie können jedoch dasselbe Ergebnis erzielen, ohne ein WHERE zu verwenden Klausel. Sie können auch nach einem Knoten suchen, indem Sie dieselbe Notation angeben, die Sie zum Erstellen des Knotens verwendet haben.

Der folgende Code liefert dieselben Ergebnisse wie die obige Anweisung:

MATCH (p:Person {Name: "Devin Townsend"})
RETURN p

Wenn Sie eine der obigen Abfragen ausführen, wird der folgende Knoten angezeigt:

Sie haben vielleicht bemerkt, dass das Klicken auf einen Knoten einen äußeren Kreis erweitert, der in drei Abschnitte unterteilt ist – jeder repräsentiert eine andere Option:

Durch Klicken auf den unteren Abschnitt werden die Beziehungen des Knotens erweitert:

Beziehungen

Sie können Beziehungen auch mit MATCH durchlaufen Erklärung. Tatsächlich ist dies eines der Dinge, in denen Neo4j wirklich gut ist.

Zum Beispiel, wenn wir herausfinden wollten, welcher Künstler das Album mit dem Titel Heavy as a Really Heavy Thing veröffentlicht hat , könnten wir die folgende Abfrage verwenden:

MATCH (a:Artist)-[:RELEASED]->(b:Album)
WHERE b.Name = "Heavy as a Really Heavy Thing" 
RETURN a

Dies gibt den folgenden Knoten zurück:

Sie können das von uns verwendete Muster im MATCH sehen Aussage ist fast selbsterklärend. Es stimmt mit allen Künstlern überein, die ein Album mit dem Namen Heavy as a Really Heavy Thing veröffentlicht haben .

Wir verwenden Variablen (also a und b ), damit wir später in der Abfrage darauf verweisen können. Wir haben keine Variablen für die Beziehung bereitgestellt, da wir später in der Abfrage nicht auf die Beziehung verweisen mussten.

Sie werden vielleicht auch bemerken, dass die erste Zeile dasselbe Muster verwendet, mit dem wir die Beziehung ursprünglich erstellt haben. Dies unterstreicht die Einfachheit der Cypher-Sprache. Wir können die gleichen Muster in verschiedenen Kontexten verwenden (z. B. zum Erstellen von Daten und zum Abrufen von Daten).

Alle Knoten zurückgeben

Sie können alle Knoten in der Datenbank zurückgeben, indem Sie einfach alle Filterdetails weglassen. Daher gibt die folgende Abfrage alle Knoten in der Datenbank zurück:

MATCH (n) RETURN n

Dies führt dazu, dass alle unsere Knoten zurückgegeben werden:

Sie können auch auf die Zeilen klicken Symbol an der Seite, um die Daten im Zeilenformat anzuzeigen:

Seien Sie vorsichtig, wenn Sie alle Knoten zurückgeben. Wenn Sie dies bei einer großen Datenbank tun, kann dies erhebliche Auswirkungen auf die Leistung haben. Es wird allgemein empfohlen, die Ergebnisse einzuschränken, um unbeabsichtigte Probleme zu vermeiden.

Siehe "Ergebnisse einschränken" weiter unten.

Begrenzen Sie die Ergebnisse

Verwenden Sie LIMIT um die Anzahl der Datensätze in der Ausgabe zu begrenzen. Es ist eine gute Idee, dies zu verwenden, wenn Sie sich nicht sicher sind, wie groß die Ergebnismenge sein wird.

Wir könnten also einfach LIMIT 5 anhängen zur vorherigen Anweisung, um die Ausgabe auf 5 Datensätze zu begrenzen:

MATCH (n) RETURN n 
LIMIT 5