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