Tutorial: consultar o Azure Cosmos DB for Gremlin usando o Gremlin
APLICA-SE AO: Gremlin
A API do Gremlin do Azure Cosmos DB também é compatível com consultas do Gremlin. Este artigo fornece exemplos de documentos e consultas para você começar. Uma referência detalhada do Gremlin é fornecida no artigo Suporte a Gremlin.
Este artigo aborda as seguintes tarefas:
- Consultar dados com o Gremlin
Pré-requisitos
Para essas consultas funcionarem, você deve ter uma conta do Azure Cosmos DB e ter dados de grafo no contêiner. Não tenho nenhum deles? Complete o Guia de início rápido de cinco minutos para criar uma conta e preencher seu banco de dados. Você pode executar as seguintes consultas usando o console Gremlin ou o seu driver favorito do Gremlin.
Contagem de vértices no grafo
O snippet a seguir mostra como contar o número de vértices no grafo:
g.V().count()
Filtros
Execute filtros usando as etapas has
e hasLabel
do Gremlin e combine-as usando and
, or
e not
para compilar filtros mais complexos. O Azure Cosmos DB fornece indexação independente do esquema de todas as propriedades em seus vértices e graus para consultas rápidas:
g.V().hasLabel('person').has('age', gt(40))
Projeção
Você pode projetar certas propriedades nos resultados da consulta usando a etapa values
:
g.V().hasLabel('person').values('name')
Localizar os vértices e bordas relacionadas
Até agora, só vimos operadores de consulta que funcionam em qualquer banco de dados. Os grafo são rápidos e eficientes para operações de passagem quando você precisa navegar até os vértices e bordas relacionadas. Vamos encontrar todos os amigos de Thomas. Fazemos isso usando a etapa outE
do Gremlin para localizar todos as bordas externas de Thomas, depois passamos para os vértices internos dessas bordas usando a etapa inV
do Gremlin:
g.V('thomas').outE('knows').inV().hasLabel('person')
A próxima consulta executa dois saltos para localizar todos os "amigos dos amigos" de Thomas, chamando outE
e inV
duas vezes.
g.V('thomas').outE('knows').inV().hasLabel('person').outE('knows').inV().hasLabel('person')
Você pode criar consultas mais complexas e implementar uma lógica avançada de passagem de grafo usando o Gremlin, incluindo a combinação de expressões de filtro, executando o loop usando a etapa loop
e implementando a navegação condicional usando a etapa choose
. Saiba mais sobre o que você pode fazer com o Suporte do Gremlin!
Próximas etapas
Neste tutorial, você fez o seguinte:
- Aprendeu a consultar usando o Graph
Agora você pode seguir para a seção Conceitos para saber mais sobre o Azure Cosmos DB.