Cypher's MATCH
výpis umožňuje najít data, která odpovídají daným kritériím. Můžete použít MATCH
vrátit data nebo s nimi provést nějakou jinou operaci.
MATCH
příkaz se používá ke shodě s daným kritériem, ale ve skutečnosti se nevrací data. Chcete-li vrátit jakákoli data z MATCH
musíme ještě použít RETURN
doložka.
Načíst uzel
Zde je jednoduchý příklad použití MATCH
příkaz k načtení uzlu:
MATCH (p:Person) WHERE p.Name = "Devin Townsend" RETURN p
WHERE
klauzule funguje stejně jako WHERE
v SQL klauzule v tom, že vám umožňuje zúžit výsledky poskytnutím dalších kritérií.
Stejného výsledku však můžete dosáhnout i bez použití WHERE
doložka. Můžete také vyhledat uzel zadáním stejného zápisu, který jste použili k vytvoření uzlu.
Následující kód poskytuje stejné výsledky jako výše uvedený příkaz:
MATCH (p:Person {Name: "Devin Townsend"}) RETURN p
Spuštění některého z výše uvedených dotazů bude mít za následek zobrazení následujícího uzlu:
Možná jste si všimli, že kliknutím na uzel se rozšíří vnější kruh rozdělený na tři části – každá představuje jinou možnost:
Kliknutím na spodní část se rozbalí vztahy uzlu:
Vztahy
Vztahy můžete také procházet pomocí MATCH
prohlášení. Ve skutečnosti je to jedna z věcí, v nichž je Neo4j opravdu dobrý.
Pokud bychom například chtěli zjistit, který interpret vydal album s názvem Heavy as a Really Heavy Thing , mohli bychom použít následující dotaz:
MATCH (a:Artist)-[:RELEASED]->(b:Album) WHERE b.Name = "Heavy as a Really Heavy Thing" RETURN a
Tím se vrátí následující uzel:
Vzor, který používáme, můžete vidět v MATCH
prohlášení je téměř samovysvětlující. Odpovídá všem interpretům, kteří vydali album s názvem Heavy as a Really Heavy Thing .
Používáme proměnné (tj. a
a b
), abychom na ně mohli později v dotazu odkazovat. Neposkytli jsme žádné proměnné pro vztah, protože jsme později v dotazu nemuseli odkazovat na vztah.
Můžete si také všimnout, že první řádek používá stejný vzor, který jsme použili k vytvoření vztahu. To zdůrazňuje jednoduchost jazyka Cypher. Můžeme použít stejné vzory v různých kontextech (tj. k vytváření dat a získávání dat).
Vrátit všechny uzly
Všechny uzly v databázi můžete vrátit jednoduše vynecháním jakýchkoli podrobností o filtrování. Proto následující dotaz vrátí všechny uzly v databázi:
MATCH (n) RETURN n
To má za následek vrácení všech našich uzlů:
Můžete také kliknout na Řádky ikona na straně pro zobrazení dat ve formátu řádků:
Buďte opatrní při vracení všech uzlů. U velké databáze by to mohlo mít zásadní dopad na výkon. Obecně se doporučuje omezit výsledky, abyste předešli nezamýšleným problémům.
Viz „Omezit výsledky“ níže.
Omezit výsledky
Použijte LIMIT
omezit počet záznamů ve výstupu. Je to dobrý nápad použít, když si nejste jisti, jak velká bude výsledná sada.
Můžeme tedy jednoduše připojit LIMIT 5
k předchozímu příkazu k omezení výstupu na 5 záznamů:
MATCH (n) RETURN n LIMIT 5