Mysql
 sql >> Database >  >> RDS >> Mysql

Neo4j - Selezione dei dati con MATCH usando Cypher

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