引用属性

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

Note

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

引用点的属性

起始点

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

目的点

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

引用边的属性

引用自定义的边属性

  1. <edge_type>.<prop_name>
参数说明
edge_typeEdge type
prop_nameEdge type的属性名称

引用内置的边属性

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

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

示例

  1. # 返回起始点的Tag player的name属性值和目的点的Tag player的age属性值。
  2. nebula> GO FROM "player100" OVER follow YIELD $^.player.name AS startName, $$.player.age AS endAge;
  3. +--------------+--------+
  4. | startName | endAge |
  5. +--------------+--------+
  6. | "Tim Duncan" | 36 |
  7. | "Tim Duncan" | 41 |
  8. +--------------+--------+
  9. # 返回Edge type follow的degree属性值。
  10. nebula> GO FROM "player100" OVER follow YIELD follow.degree;
  11. +---------------+
  12. | follow.degree |
  13. +---------------+
  14. | 95 |
  15. | 95 |
  16. +---------------+
  17. # 返回EdgeType 是 follow 的起始点 VID、目的点 VID、EdgeType 编码(正数为正向边,负数为逆向边),和边的 rank 值。
  18. nebula> GO FROM "player100" OVER follow YIELD follow._src, follow._dst, follow._type, follow._rank;
  19. +-------------+-------------+--------------+--------------+
  20. | follow._src | follow._dst | follow._type | follow._rank |
  21. +-------------+-------------+--------------+--------------+
  22. | "player100" | "player101" | 17 | 0 |
  23. | "player100" | "player125" | 17 | 0 |
  24. +-------------+-------------+--------------+--------------+

历史版本兼容性

Nebula Graph 2.6.0起支持了新的Schema函数,以上示例中的语句在2.6.0版本中的写法如下。

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

在2.6.0版本中Nebula Graph依然兼容旧语法。


最后更新: October 27, 2021