属性引用

WHEREYIELD 可引用点或边的属性。

引用点的属性

引用起点的属性

$^.tag_name.prop_name

其中符号 $^ 用于获取起点属性,tag_name 表示起点的 tagprop_name 为指定属性的名称。

引用终点的属性

$$.tag_name.prop_name

其中符号 $$ 用于获取终点属性,tag_name 表示终点的 tagprop_name 为指定属性的名称。

示例

nebula> GO FROM 100 OVER follow YIELD $^.player.name AS startName, $$.player.age AS endAge;

该语句用于获取起点的属性名称和终点的属性年龄。

引用边

引用边的属性

使用如下方式获取边属性:

edge_type.edge_prop

此处,edge_type为边的类型,edge_prop为属性,例如:

nebula> GO FROM 100 OVER follow YIELD follow.degree;

引用边的内置属性

一条边有四个内置属性:

  • _src: 边起点 ID
  • _dst: 边终点 ID
  • _type: 边类型
  • _rank: 边的 rank 值

获取起点和终点 ID 可通过 _src_dst 获取,这在显示图路径时经常会用到。

例如:

nebula> GO FROM 100 OVER follow YIELD follow._src, follow._dst, follow._type, follow._rank;
===========================================================
| follow._src | follow._dst | follow._type | follow._rank |
===========================================================
| 100         | 101         | 26           | 0            |
-----------------------------------------------------------
| 100         | 102         | 26           | 0            |
-----------------------------------------------------------
| 100         | 106         | 26           | 0            |
-----------------------------------------------------------

该语句通过引用 follow._src 作为起点 ID 和 follow._dst 作为终点 ID,返回起点 100 follow 的所有邻居点。其中 follow._src 返回起点 ID,follow._dst 返回终点 ID。