Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo passaggio dell'esercitazione si esegue una query sul grafo usando GQL (Graph Query Language) nell'editor di codice. GQL offre potenti funzionalità di query per modelli e analisi complessi del grafico.
Passa alla modalità di modifica del codice
Seguire questa procedura per passare all'editor di codice e iniziare a eseguire query sul grafo usando GQL:
Eseguire una query di base
Immettere una query GQL nel campo di input. Ad esempio, contare tutti gli ordini:
MATCH (n:`Order`) RETURN count(n) AS num_ordersSelezionare Esegui query per eseguire la query.
Questa query trova tutti i nodi con l'etichetta Order , li conta e restituisce il totale come num_orders. È un modo semplice per verificare che il grafico abbia dati e che il conteggio corrisponda al numero di righe di ordine caricate. L'immagine seguente mostra il risultato della query:
Ricreare la query del costruttore di query in GQL
Nel passaggio precedente dell'esercitazione è stato usato il generatore di query per trovare i prodotti acquistati da un cliente specifico. Ecco la stessa query scritta in GQL:
MATCH (c:Customer)-[:purchases]->(o:`Order`)-[:`contains`]->(p:`Product`)
FILTER c.fullName = 'Carla Adams'
RETURN c.fullName, o, p.productName
Questa query:
-
Corrisponde al modello
Customer→ →purchases→Order→containsProduct - Filtri per il cliente denominato "Carla Adams"
- Restituisce il nome completo, i dettagli dell'ordine e i nomi dei prodotti del cliente
L'immagine seguente mostra il risultato della query (viene mostrata solo una parte dei dati restituiti).
Eseguire una query complessa
È possibile eseguire query più complesse che combinano modelli di grafo corrispondenti, filtro, aggregazione, ordinamento e limitazione:
MATCH (v:Vendor)-[:produces]->(p:`Product`)->(sc:`ProductSubcategory`)->(c:`ProductCategory`),
(o:`Order`)-[:`contains`]->(p)
FILTER c.categoryName = 'Clothing'
LET vendorName = v.vendorName, subCategoryName = sc.subCategoryName
RETURN vendorName, subCategoryName, count(DISTINCT p) AS num_products, count(o) AS num_orders
GROUP BY vendorName, subCategoryName
ORDER BY num_orders DESC
LIMIT 5
Questa query:
- Corrisponde a un modello che collega i fornitori ai prodotti attraverso la catena di fornitura e gli ordini ai prodotti.
-
Filtri per i prodotti nella
Clothingcategoria. - Definisce le variabili per i nomi fornitore e sottocategoria.
- Restituisce il nome del fornitore, il nome della sottocategoria, il numero di prodotti distinti e il numero di ordini.
- Raggruppa i risultati in base al fornitore e alla sottocategoria.
- Ordina i risultati in base al numero di ordini in ordine decrescente.
- Limita i risultati ai primi 5.
In sintesi, mostra i primi cinque fornitori che forniscono prodotti nella Clothing categoria, insieme al numero di prodotti forniti e al numero di ordini di tali prodotti.
Contenuti correlati
Per altre informazioni sul supporto del linguaggio GQL, vedere: