你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 Gremlin 查询 Query Azure Cosmos DB for Gremlin

适用对象: Gremlin

Azure Cosmos DB API for Gremlin 支持 Gremlin 查询。 本文包含示例文档和查询,提供入门指导。 Gremlin 支持一文提供了详细的 Gremlin 引用。

本文涵盖以下任务:

  • 使用 Gremlin 查询数据

必备条件

若要使这些查询生效,必须拥有 Azure Cosmos DB 帐户,且容器中必须包含图数据。 没有这些内容? 请学习 5 分钟快速入门,创建帐户并填充数据库。 可以使用 Gremlin 控制台或你最喜爱的 Gremlin 驱动程序运行以下查询。

计算图中的顶点数量

以下代码段演示如何对图中的顶点进行计数:

g.V().count()

筛选器

可通过 Gremlin 的 hashasLabel 步骤执行筛选,并使用 andornot 将其组合,创建更复杂的筛选器。 Azure Cosmos DB 提供顶点和度数内所有属性的架构无关索引,以进行快速查询:

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

投影

可使用 values 步骤对查询结果中的某些属性进行投影:

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

目前为止,我们仅介绍了适用于任何数据库的查询运算符。 如需导航到相关边缘和顶点,可以使用图快速高效地进行遍历操作。 查找 Thomas 的所有朋友。 为此,可使用 Gremlin 的 outE 步骤从 Thomas 中查找所有外缘,并使用 Gremlin 的 inV 步骤从这些边缘遍历至内顶点:

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

下一查询通过调用 outEinV 两次,执行两个跃点查找 Thomas 所有的“朋友的朋友”。

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

可使用 Gremlin 构建更加复杂的查询和实现功能强大图遍历逻辑,包括混合筛选表达式、使用 loop 步骤执行循环以及使用 choose 步骤实现条件导航。 深入了解通过 Gremlin 支持可实现的操作!

后续步骤

在本教程中,已完成以下内容:

  • 已了解如何使用 Graph 进行查询

现在可以转到“概念”部分详细了解 Azure Cosmos DB。