Neo4j - clausola Where
Come SQL, Neo4j CQL ha fornito la clausola WHERE nel comando CQL MATCH per filtrare i risultati di una query MATCH.
Sintassi
Di seguito è riportata la sintassi della clausola WHERE.
MATCH (label)
WHERE label.country = "property"
RETURN label
Esempio
Prima di procedere con l'esempio, creare cinque nodi nel database come mostrato di seguito.
CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222,
country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})
Di seguito è riportato un esempio di Cypher Query che restituisce tutti i giocatori (nodi) che appartengono al paese India utilizzando la clausola WHERE.
MATCH (player)
WHERE player.country = "India"
RETURN player
Per eseguire la query di cui sopra, eseguire i seguenti passaggi:
Step 1- Apri l'app desktop Neo4j e avvia il server Neo4j. Apri l'app browser integrata di Neo4j utilizzando l'URLhttp://localhost:7474/ come mostrato nello screenshot seguente.
Step 2 - Copiare e incollare la query desiderata nel prompt del dollaro e premere il pulsante di riproduzione (per eseguire la query) evidenziato nella schermata seguente.
Risultato
All'esecuzione, otterrai il seguente risultato.
WHERE clausola con condizioni multiple
È inoltre possibile utilizzare la clausola WHERE per verificare più condizioni.
Sintassi
Di seguito è riportata la sintassi per utilizzare la clausola WHERE in Neo4j con più condizioni.
MATCH (emp:Employee)
WHERE emp.name = 'Abc' AND emp.name = 'Xyz'
RETURN emp
Esempio
Di seguito è riportato un esempio di Cypher Query che filtra i nodi nel database Neo4j utilizzando due condizioni.
MATCH (player)
WHERE player.country = "India" AND player.runs >=175
RETURN player
Per eseguire la query di cui sopra, eseguire i seguenti passaggi:
Step 1- Apri l'app desktop Neo4j e avvia il server Neo4j. Apri l'app browser integrata di Neo4j utilizzando l'URLhttp://localhost:7474/ come mostrato nello screenshot seguente.
Step 2 - Copiare e incollare la query desiderata nel prompt del dollaro e premere il pulsante di riproduzione (per eseguire la query) evidenziato nella schermata seguente.
Risultato
All'esecuzione, otterrai il seguente risultato.
Utilizzo della relazione con la clausola Where
È inoltre possibile utilizzare la clausola Where per filtrare i nodi utilizzando le relazioni.
Esempio
Supponiamo di avere il seguente grafico nel database.
Di seguito è riportato un esempio di Cypher Query per recuperare il miglior realizzatore dell'India utilizzando la clausola WHERE come mostrato di seguito.
MATCH (n)
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"})
RETURN n
Per eseguire la query di cui sopra, eseguire i seguenti passaggi:
Step 1- Apri l'app desktop Neo4j e avvia il server Neo4j. Apri l'app browser integrata di Neo4j utilizzando l'URLhttp://localhost:7474/ come mostrato nello screenshot seguente.
Step 2 - Copiare e incollare la query desiderata nel prompt del dollaro e premere il pulsante di riproduzione (per eseguire la query) evidenziato nella schermata seguente.
Risultato
All'esecuzione, otterrai il seguente risultato. Qui puoi osservare che Neo4j ha restituito il nodo, che ha la relazione TOP_SCORER_OF al paese con il nodo che ha il nome India.