跳转至

引用属性

用户可以在WHEREYIELD子句中引用点或边的属性。

Note

本功能仅适用于原生 nGQL 的 GO 语句。

引用点的属性

起始点

$^.<tag_name>.<prop_name>
参数 说明
$^ 起始点
tag_name 点的 Tag 名称
prop_name Tag 内的属性名称

目的点

$$.<tag_name>.<prop_name>
参数 说明
$$ 目的点
tag_name 点的 Tag 名称
prop_name Tag 内的属性名称

引用边的属性

引用自定义的边属性

<edge_type>.<prop_name>
参数 说明
edge_type Edge type
prop_name Edge type 的属性名称

引用内置的边属性

除了自定义的边属性,每条边还有如下四种内置属性:

参数 说明
_src 边的起始点
_dst 边的目的点
_type 边的类型内部编码,正负号表示方向:正数为正向边,负数为逆向边
_rank 边的 rank 值

示例

# 返回起始点的 Tag player 的 name 属性值和目的点的 Tag player 的 age 属性值。
nebula> GO FROM "player100" OVER follow YIELD $^.player.name AS startName, $$.player.age AS endAge;
+--------------+--------+
| startName    | endAge |
+--------------+--------+
| "Tim Duncan" | 36     |
| "Tim Duncan" | 41     |
+--------------+--------+

# 返回 Edge type follow 的 degree 属性值。
nebula> GO FROM "player100" OVER follow YIELD follow.degree;
+---------------+
| follow.degree |
+---------------+
| 95            |
+---------------+

# 返回 EdgeType 是 follow 的起始点 VID、目的点 VID、EdgeType 编码(正数为正向边,负数为逆向边),和边的 rank 值。
nebula> GO FROM "player100" OVER follow YIELD follow._src, follow._dst, follow._type, follow._rank;
+-------------+-------------+--------------+--------------+
| follow._src | follow._dst | follow._type | follow._rank |
+-------------+-------------+--------------+--------------+
| "player100" | "player101" | 17           | 0            |
| "player100" | "player125" | 17           | 0            |
+-------------+-------------+--------------+--------------+

历史版本兼容性

从 NebulaGraph 2.6.0 起支持了新的 Schema 相关函数。以上示例在 NebulaGraph 3.3.0 中的近似写法如下:

GO FROM "player100" OVER follow YIELD properties($^).name AS startName, properties($$).age AS endAge;
GO FROM "player100" OVER follow YIELD properties(edge).degree;
GO FROM "player100" OVER follow YIELD src(edge), dst(edge), type(edge), rank(edge);

NebulaGraph 3.3.0 兼容新旧语法。


最后更新: March 28, 2023