sql >> Databasteknik >  >> RDS >> Mysql

Neo4j - Välja data med MATCH med Cypher

Cyphers MATCH uttalande låter dig hitta data som matchar ett givet kriterium. Du kan använda MATCH att returnera data eller utföra någon annan operation på den.

MATCH uttalande används för att matcha ett givet kriterium, men det returerar faktiskt inte uppgifterna. För att returnera all data från en MATCH uttalande måste vi fortfarande använda RETURN klausul.

Hämta en nod

Här är ett enkelt exempel på hur du använder en MATCH uttalande för att hämta en nod:

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

WHERE satsen fungerar på samma sätt som SQLs WHERE klausul, genom att den tillåter dig att begränsa resultaten genom att tillhandahålla extra kriterier.

Du kan dock uppnå samma resultat utan att använda en WHERE klausul. Du kan också söka efter en nod genom att ange samma notation som du använde för att skapa noden.

Följande kod ger samma resultat som ovanstående påstående:

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

Att köra någon av ovanstående frågor kommer att resultera i att följande nod visas:

Du kanske har märkt att ett klick på en nod expanderar en yttre cirkel som är uppdelad i tre sektioner – var och en representerar ett annat alternativ:

Genom att klicka på den nedre sektionen utökas nodens relationer:

Relationer

Du kan också gå igenom relationer med MATCH påstående. Detta är faktiskt en av de saker som Neo4j är riktigt bra på.

Till exempel, om vi ville ta reda på vilken artist som släppte albumet som heter Heavy as a Really Heavy Thing , kan vi använda följande fråga:

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

Detta kommer att returnera följande nod:

Du kan se att mönstret vi använder i MATCH uttalandet är nästan självförklarande. Det matchar alla artister som släppt ett album som hade namnet Heavy as a Really Heavy Thing .

Vi använder variabler (dvs a och b ) så att vi kan hänvisa till dem senare i frågan. Vi angav inga variabler för relationen, eftersom vi inte behövde hänvisa till relationen senare i frågan.

Du kanske också märker att den första raden använder samma mönster som vi använde för att skapa relationen från början. Detta framhäver enkelheten i Cypher-språket. Vi kan använda samma mönster i olika sammanhang (dvs för att skapa data och för att hämta data).

Returnera alla noder

Du kan returnera alla noder i databasen genom att helt enkelt utelämna eventuella filtreringsdetaljer. Därför kommer följande fråga att returnera alla noder i databasen:

MATCH (n) RETURN n

Detta resulterar i att alla våra noder returneras:

Du kan också klicka på raderna ikonen på sidan för att visa data i radformat:

Var försiktig när du returnerar alla noder. Att göra detta på en stor databas kan få stora prestandaimplikationer. Det rekommenderas i allmänhet att begränsa resultaten för att undvika oavsiktliga problem.

Se "Begränsa resultaten" nedan.

Begränsa resultaten

Använd LIMIT för att begränsa antalet poster i utgången. Det är en bra idé att använda detta när du inte är säker på hur stor resultatuppsättningen kommer att bli.

Så vi kunde helt enkelt lägga till LIMIT 5 till föregående sats för att begränsa utdata till 5 poster:

MATCH (n) RETURN n 
LIMIT 5

  1. SQL-serverlogg, leverans och katastrofåterställning, installation och konfiguration -2

  2. Min OOW15-resa är klar

  3. Hur vet man att installerad Oracle Client är 32-bitars eller 64-bitars?

  4. MariaDB POWER() Förklarat