MATCH
di Cypher istruzione consente di trovare dati che corrispondono a un determinato criterio. Puoi usare MATCH
per restituire i dati o per eseguire altre operazioni su di essi.
Il MATCH
istruzione viene utilizzata per soddisfare un determinato criterio, ma in realtà non viene restituito i dati. Per restituire qualsiasi dato da un MATCH
dichiarazione, dobbiamo ancora usare il RETURN
clausola.
Recupera un nodo
Ecco un semplice esempio di utilizzo di un MATCH
istruzione per recuperare un nodo:
MATCH (p:Person) WHERE p.Name = "Devin Townsend" RETURN p
Il WHERE
La clausola funziona allo stesso modo di WHERE
di SQL clausola, in quanto consente di restringere i risultati fornendo criteri aggiuntivi.
Tuttavia, puoi ottenere lo stesso risultato senza utilizzare un WHERE
clausola. Puoi anche cercare un nodo fornendo la stessa notazione usata per creare il nodo.
Il codice seguente fornisce gli stessi risultati dell'istruzione precedente:
MATCH (p:Person {Name: "Devin Townsend"}) RETURN p
L'esecuzione di una delle query precedenti comporterà la visualizzazione del seguente nodo:
Potresti aver notato che facendo clic su un nodo si espande un cerchio esterno separato in tre sezioni, ciascuna delle quali rappresenta un'opzione diversa:
Facendo clic sulla sezione inferiore si espanderanno le relazioni del nodo:
Relazioni
Puoi anche attraversare le relazioni con MATCH
dichiarazione. In effetti, questa è una delle cose in cui Neo4j è davvero bravo.
Ad esempio, se volessimo scoprire quale artista ha pubblicato l'album chiamato Heavy as a Really Heavy Thing , potremmo usare la seguente query:
MATCH (a:Artist)-[:RELEASED]->(b:Album) WHERE b.Name = "Heavy as a Really Heavy Thing" RETURN a
Questo restituirà il seguente nodo:
Puoi vedere che il modello che usiamo in MATCH
l'affermazione è quasi autoesplicativa. Corrisponde a tutti gli artisti che hanno pubblicato un album che aveva il nome di Heavy as a Really Heavy Thing .
Usiamo variabili (es. a
e b
) in modo da poterli fare riferimento più avanti nella query. Non abbiamo fornito alcuna variabile per la relazione, poiché non era necessario fare riferimento alla relazione più avanti nella query.
Potresti anche notare che la prima riga utilizza lo stesso schema che abbiamo usato per creare la relazione in primo luogo. Ciò evidenzia la semplicità del linguaggio Cypher. Possiamo utilizzare gli stessi modelli in contesti diversi (ad esempio per creare dati e recuperare dati).
Restituisci tutti i nodi
Puoi restituire tutti i nodi nel database semplicemente omettendo qualsiasi dettaglio del filtro. Pertanto, la seguente query restituirà tutti i nodi nel database:
MATCH (n) RETURN n
Ciò comporta la restituzione di tutti i nostri nodi:
Puoi anche fare clic su Righe icona a lato per visualizzare i dati in formato riga:
Fai attenzione quando restituisci tutti i nodi. Questa operazione su un database di grandi dimensioni potrebbe avere importanti implicazioni sulle prestazioni. In genere si consiglia di limitare i risultati per evitare problemi indesiderati.
Vedi "Limitare i risultati" di seguito.
Limita i risultati
Usa LIMIT
per limitare il numero di record nell'output. È una buona idea utilizzarlo quando non sei sicuro di quanto sarà grande il set di risultati.
Quindi potremmo semplicemente aggiungere LIMIT 5
all'istruzione precedente per limitare l'output a 5 record:
MATCH (n) RETURN n LIMIT 5