Gremlin是一种用于图遍历的语言,常见的step操作如下:
遍历操作
-
g.V()
:从图中的所有顶点开始遍历。例如,g.V()
可以获取图中的所有顶点。 -
g.E()
:从图中的所有边开始遍历。比如,g.E()
能够获取图中的所有边。 -
g.V().out()
:从所有顶点出发,沿着出边方向进行遍历,访问与当前顶点相连的所有邻居顶点。 -
g.V().in()
:从所有顶点出发,沿着入边方向进行遍历,访问指向当前顶点的所有源顶点。
过滤操作
-
hasLabel()
:根据顶点或边的标签进行过滤。例如,g.V().hasLabel('person')
可以获取所有标签为'person'的顶点。 -
has()
:根据顶点或边的属性进行过滤。如g.V().has('age', 30)
可以获取所有年龄为30的顶点。 -
not()
:对过滤条件取反。比如g.V().not(has('name', 'John'))
可以获取所有名字不是'John'的顶点。
映射操作
-
values()
:提取顶点或边的属性值。例如,g.V().values('name')
可以获取所有顶点的'name'属性值。 -
project()
:将顶点或边的多个属性组合成一个新的结构。如g.V().project('name', 'age').by('name').by('age')
可以将顶点的'name'和'age'属性组合成一个新的结构。 -
as()
:给遍历的结果或中间步骤起一个别名,方便后续引用。例如g.V().as('v').out().as('neighbor').select('v', 'neighbor')
,这里给顶点和它的邻居顶点分别起了'v'和'neighbor'的别名,然后再进行选择操作。
聚合操作
-
count()
:统计元素的数量。例如,g.V().count()
可以统计图中顶点的数量。 -
sum()
:对数值类型的属性进行求和。比如g.V().values('age').sum()
可以计算所有顶点年龄的总和。 -
max()
、min()
:用于获取数值类型属性的最大值或最小值。如g.V().values('age').max()
可以获取所有顶点年龄的最大值。
排序操作
-
order()
:用于对遍历结果进行排序。 -
by()
:结合order()
使用,指定按照某个属性进行排序。例如,g.V().order().by('age', incr)
可以按照顶点的'age'属性值升序排序,如果要降序则使用decr
。
路径操作
-
path()
:记录遍历过程中经过的路径。例如,g.V(1).out().path()
可以获取从顶点1出发经过的路径。 -
simplePath()
:只返回不包含重复顶点的简单路径。比如g.V(1).out().simplePath()
会返回从顶点1出发的不包含重复顶点的路径。
https://zhuanlan.zhihu.com/p/115098569