Schema函数

Nebula Graph支持以下Schema函数。

原生nGQL语句适用

Note

  • GO语句中,WHERE子句和YIELD子句中可以使用如下函数。
  • LOOKUP语句中,YIELD子句中可以使用如下函数。
  • FETCH语句中,YIELD子句中可以使用如下函数。
函数说明
id(vertex)返回点ID。数据类型和点ID的类型保持一致。
map properties(vertex)返回点的所有属性。
map properties(edge)返回边的所有属性。
string type(edge)返回边的Edge type。
src(edge)返回边的起始点ID。数据类型和点ID的类型保持一致。
dst(edge)返回边的目的点ID。数据类型和点ID的类型保持一致。
int rank(edge)返回边的rank。

openCypher兼容语句适用

函数说明
id(<vertex>)返回点ID。数据类型和点ID的类型保持一致。
list tags(<vertex>)返回点的Tag,与labels()作用相同。
list labels(<vertex>)返回点的Tag,与tags()作用相同,用于兼容openCypher语法。
map properties(<vertex_or_edge>)返回点或边的所有属性。
string type(<edge>)返回边的Edge type。
src(<edge>)返回边的起始点ID。数据类型和点ID的类型保持一致。
dst(<edge>)返回边的目的点ID。数据类型和点ID的类型保持一致。
vertex startNode(<path>)获取一条边或一条路径并返回它的起始点ID。
string endNode(<path>)获取一条边或一条路径并返回它的目的点ID。
int rank(<edge>)返回边的rank。

示例

  1. nebula> GO FROM "player100" OVER follow REVERSELY \
  2. YIELD src(edge) AS destination;
  3. +-------------+
  4. | destination |
  5. +-------------+
  6. | "player101" |
  7. | "player102" |
  8. +-------------+
  9. nebula> LOOKUP ON player WHERE player.age > 45 YIELD id(vertex);
  10. +-------------+-------------+
  11. | VertexID | id(VERTEX) |
  12. +-------------+-------------+
  13. | "player144" | "player144" |
  14. | "player140" | "player140" |
  15. +-------------+-------------+
  16. nebula> MATCH (a:player) WHERE id(a) == "player100" \
  17. RETURN tags(a), labels(a), properties(a);
  18. +------------+------------+-------------------------------+
  19. | tags(a) | labels(a) | properties(a) |
  20. +------------+------------+-------------------------------+
  21. | ["player"] | ["player"] | {age: 42, name: "Tim Duncan"} |
  22. +------------+------------+-------------------------------+
  23. nebula> MATCH p = (a :player {name : "Tim Duncan"})-[r:serve]-(t) \
  24. RETURN type(r), rank(r);
  25. +---------+---------+
  26. | type(r) | rank(r) |
  27. +---------+---------+
  28. | "serve" | 0 |
  29. +---------+---------+
  30. nebula> MATCH p = (a :player {name : "Tim Duncan"})-[r:serve]-(t) \
  31. RETURN startNode(p), endNode(p);
  32. +----------------------------------------------------+----------------------------------+
  33. | startNode(p) | endNode(p) |
  34. +----------------------------------------------------+----------------------------------+
  35. | ("player100" :player{age: 42, name: "Tim Duncan"}) | ("team204" :team{name: "Spurs"}) |
  36. +----------------------------------------------------+----------------------------------+

最后更新: October 27, 2021