Azure Cosmos DB: procedura per l'esecuzione di query con l'API Graph (anteprima)

L'API Graph di Azure Cosmos DB (anteprima) supporta le query Gremlin. Questo articolo include esempi di documenti e query per iniziare. L'articolo relativo al supporto Gremlin include riferimenti Gremlin dettagliati.

Questo articolo illustra le attività seguenti:

  • Esecuzione di query sui dati con Gremlin

Prerequisiti

Per il funzionamento di queste query è necessario disporre di un account Azure Cosmos DB e nel contenitore devono essere presenti dati grafo. Questi requisiti non sono disponibili? Completare la Guida introduttiva di 5 minuti o l'esercitazione per sviluppatori per creare un account e popolare il database. È possibile eseguire le query seguenti usando la libreria .NET di grafi di Azure Cosmos DB, la console Gremlin, o il driver Gremlin preferito.

Numero di vertici nel grafo

Il frammento seguente illustra come contare il numero di vertici nel grafo:

g.V().count()

Filtri

È possibile applicare filtri usando i comandi has e hasLabel di Gremlin e combinarli usando and, or e not per creare filtri più complessi. Per velocizzare le query, Azure DB Cosmos consente l'indicizzazione senza schema di tutte le proprietà all'interno di vertici e gradi.

g.V().hasLabel('person').has('age', gt(40))

Proiezione

È possibile proiettare determinate proprietà nei risultati della query usando il comando values:

g.V().hasLabel('person').values('firstName')

Finora sono stati esaminati solo gli operatori di query che è possibile usare in qualsiasi database. I grafi sono veloci ed efficienti per le operazioni di attraversamento quando è necessario passare agli archi e ai vertici correlati. Verranno ora individuati tutti gli amici di Thomas. Questa operazione viene eseguita usando il comando outE di Gremlin per individuare tutti gli archi in uscita da Thomas, quindi attraversando i vertici in ingresso da tali archi usando il comando inV di Gremlin:

g.V('thomas').outE('knows').inV().hasLabel('person')

La query successiva esegue due passaggi per trovare tutti "gli amici di amici" di Thomas chiamando outE e inV due volte.

g.V('thomas').outE('knows').inV().hasLabel('person').outE('knows').inV().hasLabel('person')

È possibile creare query più complesse e implementare la potente logica di attraversamento di grafi usando Gremlin, incluse la combinazione di espressioni di filtro, l'esecuzione di cicli con il comando loop e l'implementazione dello spostamento condizionale usando il comando choose. Altre informazioni sulle operazioni che è possibile eseguire con il supporto per Gremlin.

Passaggi successivi

In questa esercitazione sono state eseguite le operazioni seguenti:

  • È stato appreso come eseguire una query usando l'API Graph

È ora possibile passare all'esercitazione successiva per imparare a distribuire i dati a livello globale.