前言:Gremlin语言是图数据库查询语言,相当于SQL之于关系型数据库。为了图数据库使用者更好的掌握Gremlin这门图语言,我们对Gremlin Steps进行了分类与总结,接下来将会出一个Gremlin系列文章(初步准备分20~25期来完成这个计划),每一期会针对一类Step进行语法讲解与实例分析。
第1期 Gremlin Steps:
本系列文章的Gremlin示例均在HugeGraph图数据库上执行,环境搭建可参考准备Gremlin执行环境。
图基本概念
- 图Graph:指关系图。比如:同学及朋友关系图、银行转账图等。
- 顶点Vertex:一般指实体。比如:人、账户等。
- 边Edge:一般指关系。比如:朋友关系、转账动作等。
- 属性Property:顶点或边可以包含属性,比如:人的姓名、人的年龄、转账的时间。
下面使用一个例子来进一步理解上面的概念。如下图片展示了一个“软件、人”之间的关系图。
其中:
- 包括4个顶点:3个“人”顶点、一个“软件HugeGraph”顶点。
- 包括5条边:3条“创建created”边、2条“认识knows”边。
- 包括若干属性:如“HugeGraph”顶点包括“名称name”、“标签tag”、“语言lang”等属性,一个属性由属性名和属性值组成,如“lang:java”。
此外:
- 顶点与边有类别之分,如“HugeGraph”顶点的label是“software”、3个“人”顶点的label是“person”,在Gremlin里面称之为“label”。
- 顶点与边均由id来唯一标识,Gremlin里顶点与边必须包括id,一般图数据库的顶点id或边id均由系统自动生成。
图基本操作
对图基本概念有了初步了解之后,我们接下来学习如何使用Gremlin去操作它。首先准备好一些数据,这里以搭建环境文章中的“TinkerPop关系图”为例。下面将要学习的Gremlin Steps包括:
- Step
V()
:查询顶点,一般作为图查询的第1步,后面可以续接的语句种类繁多(后续会一一讲解)。
// 查询图中所有的顶点
// 注意:g 代表的是整个图
// 一切查询都是以图开始
g.V()
// 根据id查询顶点
g.V('4:Gremlin', '3:TinkerPop')