Cypher's MATCH
verklaring kunt u gegevens vinden die voldoen aan een bepaald criterium. U kunt MATCH
. gebruiken om de gegevens terug te geven of er een andere bewerking op uit te voeren.
De MATCH
statement wordt gebruikt om aan een bepaald criterium te voldoen, maar het retourneert niet de data. Gegevens retourneren van een MATCH
statement, moeten we nog steeds de RETURN
clausule.
Een knooppunt ophalen
Hier is een eenvoudig voorbeeld van het gebruik van een MATCH
statement om een node op te halen:
MATCH (p:Person) WHERE p.Name = "Devin Townsend" RETURN p
De WHERE
clausule werkt op dezelfde manier als SQL's WHERE
clausule, in die zin dat u de resultaten kunt verfijnen door extra criteria op te geven.
U kunt echter hetzelfde resultaat bereiken zonder een WHERE
. te gebruiken clausule. Je kunt ook naar een knooppunt zoeken door dezelfde notatie op te geven die je hebt gebruikt om het knooppunt te maken.
De volgende code geeft dezelfde resultaten als de bovenstaande verklaring:
MATCH (p:Person {Name: "Devin Townsend"}) RETURN p
Als u een van de bovenstaande query's uitvoert, wordt het volgende knooppunt weergegeven:
Het is je misschien opgevallen dat het klikken op een knooppunt een buitenste cirkel uitbreidt die is opgedeeld in drie secties, die elk een andere optie vertegenwoordigen:
Als u op het onderste gedeelte klikt, worden de relaties van het knooppunt uitgevouwen:
Relaties
U kunt ook relaties doorkruisen met de MATCH
uitspraak. Dit is zelfs een van de dingen waar Neo4j echt goed in is.
Als we bijvoorbeeld willen weten welke artiest het album Heavy as a Really Heavy Thing heeft uitgebracht, , kunnen we de volgende zoekopdracht gebruiken:
MATCH (a:Artist)-[:RELEASED]->(b:Album) WHERE b.Name = "Heavy as a Really Heavy Thing" RETURN a
Dit levert het volgende knooppunt op:
Je kunt zien dat het patroon dat we gebruiken in de MATCH
verklaring is bijna vanzelfsprekend. Het komt overeen met alle artiesten die een album hebben uitgebracht met de naam Heavy as a Really Heavy Thing .
We gebruiken variabelen (d.w.z. a
en b
) zodat we ze later in de query kunnen raadplegen. We hebben geen variabelen voor de relatie opgegeven, omdat we later in de zoekopdracht niet naar de relatie hoefden te verwijzen.
Je merkt misschien ook dat de eerste regel hetzelfde patroon gebruikt dat we hebben gebruikt om de relatie in de eerste plaats te creëren. Dit benadrukt de eenvoud van de Cypher-taal. We kunnen dezelfde patronen in verschillende contexten gebruiken (d.w.z. om gegevens te creëren en om gegevens op te halen).
Alle knooppunten retourneren
U kunt alle knooppunten in de database retourneren door eenvoudigweg filterdetails weg te laten. Daarom retourneert de volgende query alle knooppunten in de database:
MATCH (n) RETURN n
Dit resulteert erin dat al onze knooppunten worden geretourneerd:
U kunt ook op de Rijen . klikken pictogram aan de zijkant om de gegevens in rij-indeling weer te geven:
Wees voorzichtig bij het retourneren van alle knooppunten. Als u dit op een grote database doet, kan dit grote gevolgen hebben voor de prestaties. Het wordt over het algemeen aanbevolen om de resultaten te beperken om onbedoelde problemen te voorkomen.
Zie "Beperk de resultaten" hieronder.
Beperk de resultaten
Gebruik LIMIT
om het aantal records in de uitvoer te beperken. Het is een goed idee om dit te gebruiken als u niet zeker weet hoe groot de resultatenset zal zijn.
We kunnen dus eenvoudig LIMIT 5
. toevoegen naar het vorige statement om de output te beperken tot 5 records:
MATCH (n) RETURN n LIMIT 5