引用属性Graph
用户可以在WHERE
和YIELD
子句中引用点或边的属性。
Note
本功能仅适用于原生 nGQL 的 GO 语句。
引用点的属性Graph
起始点Graph
$^.<tag_name>.<prop_name>
参数 | 说明 |
---|---|
$^ |
起始点 |
tag_name |
点的 Tag 名称 |
prop_name |
Tag 内的属性名称 |
目的点Graph
$$.<tag_name>.<prop_name>
参数 | 说明 |
---|---|
$$ |
目的点 |
tag_name |
点的 Tag 名称 |
prop_name |
Tag 内的属性名称 |
引用边的属性Graph
引用自定义的边属性Graph
<edge_type>.<prop_name>
参数 | 说明 |
---|---|
edge_type |
Edge type |
prop_name |
Edge type 的属性名称 |
引用内置的边属性Graph
除了自定义的边属性,每条边还有如下四种内置属性:
参数 | 说明 |
---|---|
_src |
边的起始点 |
_dst |
边的目的点 |
_type |
边的类型内部编码,正负号表示方向:正数为正向边,负数为逆向边 |
_rank |
边的 rank 值 |
示例Graph
# 返回起始点的 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 起支持了新的 Graph,以上示例中的语句在 2.6.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);
在 2.6.0 版本中 NebulaGraph 依然兼容旧语法。
最后更新: November 24, 2021