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