Pomoc do laboratoriów z bazy Neo4J - Technologie ...

32
Pomoc do laboratoriów z bazy Neo4J Technologie Zarządzania Treścią dr inż. Robert Perliński [email protected] Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej Pomoc do laboratoriów z bazy Neo4J 1/32

Transcript of Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Page 1: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Pomoc do laboratoriów z bazy Neo4JTechnologie Zarządzania Treścią

dr inż. Robert Perliń[email protected]

Politechnika CzęstochowskaInstytut Informatyki Teoretycznej i Stosowanej

Pomoc do laboratoriów z bazy Neo4J 1/32

Page 2: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Instalacja i uruchomienie

Instalacja:

pobieramy najnowszą wersję ze strony producenta:https://neo4j.com/download/

rozpakowujemy, przechodzimy do utworzonego katalogu(neo4j-community-3.3.0),

wystarczy uruchomić

Używanie:

./bin/neo4j console, Włączanie/wyłączanie serwera Redis:

neo4j { console | start | stop | restart | status }

Pomoc do laboratoriów z bazy Neo4J 2/32

Page 3: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

neo4j-admin

główne narzędzie do zarządzania instancją Neo4J

dołączone do całego produktu Neo4J

użycie: neo4j-admin polecenie, dostępne polecenia:

ogólnecheck-consistency - sprawdzanie spójności bazy danychhelp - pomoc ogólna albo dla konkretnego poleceniaimport - import danych z kolekcji CSV albo z wydania przed 3.0store-info - wyświetla informacje o wersji przechowywanych danychautoryzacjaset-default-admin - ustawienie, który użytkownik ma być adminem(w przypadku nie utworzenia żadnych ról w bazie)set-initial-password - inicjalizacja hasła pierwszego adminatworzenie kopii zapasowych offlinedump - zrzut bazy danych do jednego pliku archiwumload - wczytanie bazy z archiwum utworzonego poleceniem dumptworzenie kopii zapasowych onlinebackup - tworzy kopie zapasową online z działającej instancjirestore - przywraca baze z utworzonej kopii

Pomoc do laboratoriów z bazy Neo4J 3/32

Page 4: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

neo4j-shell

narzędzie konsolowe do połączenia się z bazą i wykonania jednego poleceniaalbo listy poleceń zapisanych w pliku

uruchoamia lokalnie bazę neo4j i wykonuje na niej polecenie/polecenia

komunikuje się z bazą poprzez szyfrowany binarny protokół Bolt

uruchamianie: neo4j-shell [opcje]

-host - nazwa domeny albo adres IP hista, z którym się łączymy-port - port hosta do którego się łączymy-name - nazwa RMI, rmi://<host>:<port>/<name> (domyślnie:shell)-pid - ID procesu, z którym się łączymy-c - polecenie do uruchomienia na serwerze, po uruchomieniu shell sięwyłącza-file - plik zawierający polecenia do uruchomienia, po uruchomieniushell się wyłącza-path - ścieżka do iejsca składowania plików lokalnej bazy danych-config - wskazuje na plik z ustawieniami przy startowaniu lokalnegoserwera

Pomoc do laboratoriów z bazy Neo4J 4/32

Page 5: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

cypher-shell

tekstowa linia poleceń, narzędzie dołączone do całego produktu Neo4J

pozwala połączyć się z dowolną bazą Neo4J, użyć języka Cypher do pobraniadanych, zdefiniowania schematu czy zadań administracyjnych

pozwala na jawne używanie transakcji

komunikuje się z bazą poprzez szyfrowany binarny protokół Bolt

uruchamianie: cypher-shell [opcje]

-h, --help - pomoc do narzędzia-v, --version - wersja narządzia-a ADDRESS, --address ADDRESS - adres bazy, z którą się łączymy,domyślnie bolt://localhost:7687-u USERNAME, --username USERNAME - użytkownik, który łączy się zbazą-p PASSWORD, --password PASSWORD - hasło do połączenia--encryption true,false - określa czy szyfrować połączenie,domyślnie true

Pomoc do laboratoriów z bazy Neo4J 5/32

Page 6: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

cypher-shell - łączenie się ze zdalną bazą

darmowy hosting na portalu https://www.graphenedb.com/

host: hobby-nkhfbmpbgmcbgbkeiadcbcpl.dbs.graphenedb.com (mniej-więcej)

protokół: bolt

port: 24786

użytkownik: neo4j

hasło: superTajneHasloXYZ

./bin/cypher-shell-a bolt://hobby-nkhfbmpbgmcbgbkeiadcbcpl.dbs.graphenedb.com:24786-p superTajneHasloXYZ -u neo4j

Pomoc do laboratoriów z bazy Neo4J 6/32

Page 7: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Neo4j Browser - przelgądanie wyników

Stylizacja węzłów:

Pomoc do laboratoriów z bazy Neo4J 7/32

Page 8: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Neo4j Browser - przelgądanie wyników

Stylizacja relacji:

Pomoc do laboratoriów z bazy Neo4J 8/32

Page 9: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Niektóre polecenia z Neo4j Browser

Tutoriale:

:play start - początkowe okienko do uczenia się

:play intro - przewodnik do środowiska Neo4J Browser

:play concepts - podstawowe informacje, koncepcje o Neo4J, o grafach

:play Cypher - tutorial do języka Cypher

tutorial na przykładowych bazach

:play movie-graph - baza z kolekcją filmów, aktorów itp.

:play northwind-graph - przykład transformowania danych relacyjnychdo bazy grafowej

dowolny tutorial z podanego adresu URL:play http://guides.neo4j.com/graphgist/restaurant recommendation.html

Pomoc do laboratoriów z bazy Neo4J 9/32

Page 10: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Polecenia z Neo4j Browser - tematy pomocy

Tematy pomocy:

:help - podstawowa pomoc uczenia się Neo4J, jest tutaj trochę różnychodnośników

:help commands - pomoc do konkretnie podanego polecenia

:help play - lista wszystkch tutoriali

:help keys - info o skrótach klawiaturowych,

:help cypher - okienko do pomocy nauki języka Cypher

:help REST GET, :help REST POST, :help rest-delete, ... - pomoc doodbługi konkretnych metod protokołu HTTP

:GET /db/data/labels:DELETE /db/data/transaction/2

:help param, :help params - obsługa parametrów wykorzystywanych wzapytaniach

:help queries – info o poleceniu :queries działającym tylko w Neo4JEnterprise

Pomoc do laboratoriów z bazy Neo4J 10/32

Page 11: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Polecenia systemowe i inne w Neo4j Browser

:clear – usuwa wszystkie okienka z wynikami poleceń, tutorialami, itp.

:sysinfo - informacje o systemie, liczba węzłów, właściwości, relacji, typówrelacji

współpraca z serwerem

:help server - pomoc do poleceń serwerowych

:server connect - łączenie z serwerem, wyświetla też informacje opołączeniu jeśli takie już jest

:server disconnect - rozłączanie się od serwera

:server status – informacja o połączeniu

:server change-password – zmiana hasła

polecenia dla administratora, tylko w Node4J Enterprise

:help server user – pomoc o poleceniach dla tworzenia użytkowników iwyświetlenia ich listy,

:server user add - dodawanie użytkownika

:server user list - lista utworzonych użytkowników

Pomoc do laboratoriów z bazy Neo4J 11/32

Page 12: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Cypher - zapytania deklaratywne I

Na początek przykład tworzenia danych, polecenie CREATE:

trzy wierzchołki o etykietach: Uzytkownik,

nazwy maciej, jan, joasia to nazwy wierzchołków dostępne w tympoleceniu

do wierzchołków została dodana właściwość nazwa przechowującanazwę użytkownika, polecenia:

CREATE (maciej:Uzytkownik {nazwa:’Maciej Kamiński’})CREATE (jan:Uzytkownik {nazwa:’Jan Wojciechowski’})CREATE (joasia:Uzytkownik {nazwa:’Joanna Mielczarek’})

Tworzenie relacji również odbywa się poleceniem CREATE:

CREATE (tomasz)-[:SLEDZI]->(halina)CREATE (wojciech)-[:LUBI {jakBardzo:62}]->(zuzanna)

Pomoc do laboratoriów z bazy Neo4J 12/32

Page 13: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Cypher - zapytania deklaratywne II

Pobieranie wszystkich węzłów z grafu, polecenie MATCH:

MATCH (u:Uzytkownik) RETURN (u)

Można to uznać za odpowiednik polecenia SELECT * FROM Uzytkownik.

Cypher to język deklaratywny do pracy z grafami, udostępnia więc sposobyzapytań zarówno o wierzchołki jak i o krawędzie.

Poniższe zapytanie zwraca wszystkich Uzytkownikow powiązanych zwierzchołkiem ”Piotr Kot”.

Zaczyna od podanego nazwą węzła p, wyszukuje wszystkie krawędzieprowadzące do wierzchołków Uzytkownik i wszystkie je zwraca:

MATCH (p:Uzytkownik {nazwa:’Piotr Kot’})--(u:Uzytkownik) RETURN (u)

Pomoc do laboratoriów z bazy Neo4J 13/32

Page 14: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Węzły w CQL

para nawiasów okrągłych () reprezentuje węzeł (niedokończone kółko)

węzły z różnym poziomem szczegółowości danych:

()(gump)(:Film)(gump:Film)(gump:Film {tytul: "Forrest Gump"})(gump:Film {tytul: "Forrest Gump", premiera: 1994})

anonimowy węzeł ()

węzeł ze zmienną (gump), można odnieść się do węzła w innej częścipolecenia ale zasięg ziennej jest ograniczony do jednego polecenia

etykieta Film poprzedzona dwukropkiem określa typ węzła; etykietyograniczają wzorce i są wykorzystywane w indeksach

właściwości węzłów ({tytul: "Forrest Gump"}) to pary klucz-wartośćograniczone nawiasami klamrowymi; używane do przechowywania informacjii ograniczania wzorców

Pomoc do laboratoriów z bazy Neo4J 14/32

Page 15: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Relacje w CQL

relacje nieskierowane oznaczamy parą myślników --

relacje skierowane mają wglądać jak strzałka: <-- albo --> (znakimniejszości i większości)

nawiasy kwadratowe [...] są używane do umieszczania w relacjachwłaściwości, zmiennych i/lub typu relacji

-->-[rola]->-[:GRAŁ_W]->-[rola:GRAŁ_W]->-[rola:GRAŁ_W {role: ["Forrest Gump"]}]->

anonimowa relacja -->

relacja ze zmienną -[rola]->, którą można wykorzystać gdziekolwiek wpoleceniu

typ relacji GRAŁ_W można wykorzystać w budowaniu wzorca

właściwości relacji {role: ["Forrest Gump"]}, analogicznie jakwłaściwości węzła, zawierają pray klucz-wartość, wartości mogą być tablicami

Pomoc do laboratoriów z bazy Neo4J 15/32

Page 16: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Przykładowy wzorzec w CQL

łącząc zapis węzłów z relacjami pomiędzy nimi tworzymy wzorce

przyklad prostego wzorca

(tom:Osoba:Aktor {nazwa: "Tom Hanks"} )-[rola:GRAŁ_W {role: ["Forrest Gump"] } ]->(gump:Film {tytul: "Forrest Gump"} )

typy relacji poprzedzone są dwukropkiem :GRAŁ_W

zmienne (rola) mogą być użyte do odwołania się do relacji w poleceniu

tablica role pozwala określić wiele ról danego aktora

Węzły wzorca a węzły w bazie

każdy węzeł wzorca opisuje zero lub więcej węzłów z bazy danych

każdy zapisany wzorzec opisuje zero lub więcej ścieżek w grafie

Pomoc do laboratoriów z bazy Neo4J 16/32

Page 17: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Zmienne dla wzorców

Cypher pozwala przypisywać wzorce do zmiennych

pozwala to na wielokrotne wykorzystanie fragmentu wzorca, podział jegobudowy na moduły

aktorzy = (:Osoba)-[:GRAŁ_W]->(:Film)

zmienna aktorzy będzie zawierać dwa węzły połączone relacją dla każdejznalezionej bądź utworzonej ścieżki

dostęp do ścieżek i zawartych w nich danych jest dostępny za pomocą wielufunkcji

nodes(path)

relationships(path)

length(path)

Pomoc do laboratoriów z bazy Neo4J 17/32

Page 18: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Klauzule w CQL

zapytania języka Cypher mają zwykle kilka klauzul, z których każdawykonuję określone zadanie

tworzenie i dopasowywanie wzorców w grafiefiltrowanie, projekcja, sortowanie albo paginacja wynikówłączenie w większą całość mniejszych zapytań

łącząc klauzule języka Cypher tworzymy bardziej skomplikowanezapytania realizujące to co chcemy

Neo4J sam określa jak dane zapytanie efektywnie zrealizować

Pomoc do laboratoriów z bazy Neo4J 18/32

Page 19: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Klauzula CREATE

pozwala stworzyć dowolną strukturę grafu z podanymi etykietami iwłaściwościami

przykład

CREATE (:Film {tytul: "Forrest Gump", premiera: 1994})

wynik:

Added 1 label, created 1 node, set 2 properties, completed after 257 ms.

tworzenie danych ze zwracaniem ich

CREATE (o:Osoba:Aktor {nazwa: "Tom Hanks", dataUr:1965} )RETURN o

+---------------------------------------------------+| o |+---------------------------------------------------+| (:Osoba:Aktor {dataUr: 1965, nazwa: "Tom Hanks"}) |+---------------------------------------------------+

1 row available after 121 ms, consumed after another 6 msAdded 1 nodes, Set 2 properties, Added 2 labels

Pomoc do laboratoriów z bazy Neo4J 19/32

Page 20: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Tworzenie większej liczby elementów

w celu utworzenia większej liczby elementów może je oddzielić przecinkiem

CREATE (:Pies), (:Kot), (:Kanarek);

0 rows available after 9 ms, consumed after another 0 msAdded 3 nodes, Added 3 labels

można również użyć wielokrotnie polecenia CREATE

CREATE (:Firma) CREATE (:Uczelnia) CREATE (:Urzad);

0 rows available after 111 ms, consumed after another 0 msAdded 3 nodes, Added 3 labels

Pomoc do laboratoriów z bazy Neo4J 20/32

Page 21: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Dodawanie danych do istniejących struktur

można tworzyć również bardziej skomplikowane struktury

CREATE (a:Osoba {nazwa: "Tom Hanks", dataUr:1965})- [rola:GRAL_W { role:["Forrest"] } ] ->(f:Film {tytul: "Forrest Gump", premiera: 1994})

CREATE (r:Osoba {nazwa: "Robert Zemeckis", dataUr:1951})- [:REZYSER] -> (f)

RETURN a,r,rola,f;

wynik polecenia w formie tekstowej

+--------------------------------------------------------------------------------------------------| a | r |+--------------------------------------------------------------------------------------------------| (:Osoba {dataUr: 1965, nazwa: "Tom Hanks"}) | (:Osoba {dataUr: 1951, nazwa: "Robert Zemeckis"}) |+--------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------+rola | f |---------------------------------------------------------------------------------+[:GRAL_W {role: ["Forrest"]}] | (:Film {premiera: 1994, tytul: "Forrest Gump"}) |---------------------------------------------------------------------------------+

1 row available after 218 ms, consumed after another 2 msAdded 3 nodes, Created 2 relationships, Set 7 properties, Added 3 labels

Pomoc do laboratoriów z bazy Neo4J 21/32

Page 22: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Pobieranie, wyszukiwanie danych

dodawanie danych do istniejących struktur wymaga znalezieniainteresującego nas wzorca

wyszukujemy wzorce poleceniem MATCH

do polecenia przekazujemy wzorce tego samego typu jaki był do tej poryopisywany

jest to podobne do budowanie zapytań na bazie przykładów (ang. query byexample) tylko tutaj przykłady uwzględniają strukturyMATCH wyszukuje podanego wzorca i zwraca jeden wiersz dla każdegopoprawnego dopasowania

MATCH (f:Film)RETURN f;

+-------------------------------------------------+| f |+-------------------------------------------------+| (:Film {premiera: 1994, tytul: "Forrest Gump"}) |+-------------------------------------------------+

1 row available after 16 ms, consumed after another 1 ms

Pomoc do laboratoriów z bazy Neo4J 22/32

Page 23: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Pobieranie, wyszukiwanie danych

pobranie wszystkich węzłów typu Osoba

MATCH (o:Osoba)RETURN o;

+---------------------------------------------------+| o |+---------------------------------------------------+| (:Osoba:Aktor {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba {dataUr: 1951, nazwa: "Robert Zemeckis"}) || (:Osoba:Aktor {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba {dataUr: 1951, nazwa: "Robert Zemeckis"}) |+---------------------------------------------------+

6 rows available after 16 ms, consumed after another 1 ms

Pomoc do laboratoriów z bazy Neo4J 23/32

Page 24: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Wyszukiwanie bardziej określonych danych

pobranie węzłów typu Osoba z określoną wartością właściwości nazwa

MATCH (o:Osoba {nazwa:"Tom Hanks"})RETURN o;

+---------------------------------------------------+| o |+---------------------------------------------------+| (:Osoba:Aktor {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba:Aktor {dataUr: 1965, nazwa: "Tom Hanks"}) || (:Osoba {dataUr: 1965, nazwa: "Tom Hanks"}) |+---------------------------------------------------+

4 rows available after 29 ms, consumed after another 3 ms

nie potrzeba podawać wszystkich właściwości szukanego węzła

wystarczy podać tylko te kluczowe, np. ISBN, email, login, kod produktu,położenie geograficzne, ...

Pomoc do laboratoriów z bazy Neo4J 24/32

Page 25: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Wyszukiwanie bardziej określonych danych

zapytanie zwracające filmy i grane w nich role przez Toma Hanksa

MATCH (o:Osoba { nazwa:"Tom Hanks" })-[r:GRAL_W]->(f:Film)RETURN f.tytul, r.role;

+------------------------------+| f.tytul | r.role |+------------------------------+| "Forrest Gump" | ["Forrest"] |+------------------------------+

1 row available after 58 ms, consumed after another 3 ms

zwracamy tylko właściwości węzłów czy relacji, te, które nas interesują

posługujemy się notacją kropkową: identyfikator.wlasciwosc

Znająć polecenie MATCH i CREATE możemy już dodawać węzły i relacje doistniejącego grafu.

Pomoc do laboratoriów z bazy Neo4J 25/32

Page 26: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Dodawanie danych do grafu

aby dodać dane do grafu należy najpierw znaleźć punkty(węzły), w których chcemy coś dodać

dodajemy zawsze węzły razem z relacjami

dodanie filmu z Tomem Hanksem wygląda następująco

MATCH (o:Osoba { nazwa:"Tom Hanks" })CREATE (f:Film { tytul:"Zielona mila",premiera:1999 })CREATE (o)-[r:GRAL_W { role: [’Paul Edgecombe’]}]->(f)RETURN o,r,f

możemy przypisać zmienne zarówno do węzłów jak i krawędzi

zmiennych możemy używać niezależnie od tego czy powstały z poleceniaCREATE czy MATCH

używanie razem MATCH i CREATE tworzy węzeł dla każdego wierszadopasowanego przez MATCH, często tego właśnie oczekujemy

jeśli oczekujmey innego zachowania to, można np. umieścić CREATE przedMATCH albo użyć MERGE...

Pomoc do laboratoriów z bazy Neo4J 26/32

Page 27: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Uzupełnianie wzorców - klauzula MERGE

wykorzystywane do wykonywania pewnych operacji jednorazowo

jest idempotentne, wiele wywołań da ten sam efekt co jedno wywołanie

działa tak jak kombinacja MATCH albo CREATE sprawdzających istnieniedanych przed wstawieniem

w poleceniu MERGE definiujemy wzorzec, który ma być znaleziony alboutworzony

tak jak MATCH często chcemy uwzględnić tylko jedną kluczową właściwość,którą wzorzec określa

dodatkowo MERGE pozwala utworzyć dodatkowe właściwości, któreustawiamy przy tworzeniu (ON CREATE), polecenie

MERGE (f:Film { tytul:"Zielona mila" })ON CREATE SET f.premiera = 1999RETURN f

utworzy film jeśli takiego nie było

nic nie zrobi jeśli taki film już był w bazie (nasz przypadek)

Pomoc do laboratoriów z bazy Neo4J 27/32

Page 28: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Uzupełnianie wzorców - klauzula MERGE

polecenie MERGE z innym filmem, np.:

MERGE (f:Film { tytul:"Złap mnie, jeśli potrafisz" })ON CREATE SET f.premiera = 2002RETURN f

doda węzeł do bazy, ale kolejne wykonania tego polecenia już nic nie zmienią

MATCH bez żadnych wcześniej przypisanych zmiennych:

albo dopasuje cały podany wzorzecalbo stworzy cały podany wzorzec

nie ma możliwości, żeby część wzorca była dopasowanaa część stworzona

MERGE nigdy nie duplikuje danych czy struktur

Pomoc do laboratoriów z bazy Neo4J 28/32

Page 29: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Uzupełnianie wzorców - klauzula MERGE

MERGE może również zapewnić, że relacja będzie utworzona co najwyżej raz

wymaga to przekazania zmiennych węzła początku i końca relacji zpolecenia MATCH

MATCH (f:Film { tytul:"Złap mnie, jeśli potrafisz" })MATCH (o:Osoba { nazwa:"Tom Hanks" })MERGE (o)-[r:GRAL_W]->(f)ON CREATE SET r.role =[’Carl Hanratty’]RETURN o,r,f

powyższe poleceniu utworzy oczekiwaną relację

kolejne jego wywołania nie utworzą większej liczbytakich samych relacji

w MERGE można pominąć kierunkowość relacjimożna użyć -- zamiast -->

Pomoc do laboratoriów z bazy Neo4J 29/32

Page 30: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Uzupełnianie wzorców - klauzula MERGE

zupełnie inaczej będzie przy CREATE, polecenie

MATCH (f:Film { tytul:"Złap mnie, jeśli potrafisz" })MATCH (o:Osoba { nazwa:"Tom Hanks" })CREATE (o)-[r:GRAL_W {role: [’Carl Hanratty’]}]->(f)RETURN o,r,f

wywołanie 4 razy doda 4 takie same relacje do grafu

Pomoc do laboratoriów z bazy Neo4J 30/32

Page 31: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Filtrowanie wyników - WHERE

do tej pory zapytania zwracały wszystkie dopasowane wyniki

można to jednak ograniczyć podając warunki w klauzuli WHERE

można wykorzystywać dowolną liczbę wyrażeń booloskich łączonychoperatorami AND, OR, XOR i NOT

najprostsze predykaty to porównania, szczególnie równościowe

MATCH (f:Film)WHERE f.tytul = "Forrest Gump"RETURN f

bardziej złożony warunek

MATCH (o:Osoba)-[r:GRAL_W]->(f:Film)WHERE f.premiera > 2000 OR "Paul Edgecombe" IN r.roleRETURN o,r,f

Pomoc do laboratoriów z bazy Neo4J 31/32

Page 32: Pomoc do laboratoriów z bazy Neo4J - Technologie ...

Usuwanie wszystkich węzłów - DELETE

usuwanie wszystkich węzłów

MATCH (n)DETACH DELETE n

Pomoc do laboratoriów z bazy Neo4J 32/32