Azure Cosmos DB: Come eseguire una query con l'API Graph?Azure Cosmos DB: How to query with the Graph API?

Il database di Azure Cosmos API Graph supporta Gremlin query.The Azure Cosmos DB Graph API supports Gremlin queries. Questo articolo include esempi di documenti e query per iniziare.This article provides sample documents and queries to get you started. L'articolo relativo al supporto Gremlin include riferimenti Gremlin dettagliati.A detailed Gremlin reference is provided in the Gremlin support article.

Questo articolo illustra le attività seguenti:This article covers the following tasks:

  • Esecuzione di query sui dati con GremlinQuerying data with Gremlin

PrerequisitiPrerequisites

Per il funzionamento di queste query è necessario disporre di un account Azure Cosmos DB e nel contenitore devono essere presenti dati grafo.For these queries to work, you must have an Azure Cosmos DB account and have graph data in the container. Questi requisiti non sono disponibili?Don't have any of those? Completare la Guida introduttiva di 5 minuti o l'esercitazione per sviluppatori per creare un account e popolare il database.Complete the 5-minute quickstart or the developer tutorial to create an account and populate your database. È possibile eseguire le query seguenti usando la libreria .NET di grafi di Azure Cosmos DB, la console Gremlin, o il driver Gremlin preferito.You can run the following queries using the Azure Cosmos DB .NET graph library, Gremlin console, or your favorite Gremlin driver.

Numero di vertici nel grafoCount vertices in the graph

Il frammento seguente illustra come contare il numero di vertici nel grafo:The following snippet shows how to count the number of vertices in the graph:

g.V().count()

FiltriFilters

È possibile applicare filtri usando i comandi has e hasLabel di Gremlin e combinarli usando and, or e not per creare filtri più complessi.You can perform filters using Gremlin's has and hasLabel steps, and combine them using and, or, and not to build more complex filters. Per velocizzare le query, Azure DB Cosmos consente l'indicizzazione senza schema di tutte le proprietà all'interno di vertici e gradi.Azure Cosmos DB provides schema-agnostic indexing of all properties within your vertices and degrees for fast queries:

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

ProiezioneProjection

È possibile proiettare determinate proprietà nei risultati della query usando il comando values:You can project certain properties in the query results using the values step:

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

Finora sono stati esaminati solo gli operatori di query che è possibile usare in qualsiasi database.So far, we've only seen query operators that work in any database. I grafi sono veloci ed efficienti per le operazioni di attraversamento quando è necessario passare agli archi e ai vertici correlati.Graphs are fast and efficient for traversal operations when you need to navigate to related edges and vertices. Verranno ora individuati tutti gli amici di Thomas.Let's find all friends of 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:We do this by using Gremlin's outE step to find all the out-edges from Thomas, then traversing to the in-vertices from those edges using Gremlin's inV step:

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.The next query performs two hops to find all of Thomas' "friends of friends", by calling outE and inV two times.

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.You can build more complex queries and implement powerful graph traversal logic using Gremlin, including mixing filter expressions, performing looping using the loop step, and implementing conditional navigation using the choose step. Altre informazioni sulle operazioni che è possibile eseguire con il supporto per Gremlin.Learn more about what you can do with Gremlin support!

Passaggi successiviNext steps

In questa esercitazione sono state eseguite le operazioni seguenti:In this tutorial, you've done the following:

  • È stato appreso come eseguire una query usando l'API GraphLearned how to query using Graph

È ora possibile passare all'esercitazione successiva per imparare a distribuire i dati a livello globale.You can now proceed to the next tutorial to learn how to distribute your data globally.