跳转至

Schema函数Graph

NebulaGraph支持以下Schema函数。

原生nGQL语句适用Graph

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兼容语句适用Graph

函数 说明
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。

示例Graph

nebula> GO FROM "player100" OVER follow REVERSELY \
        YIELD src(edge) AS destination;
+-------------+
| destination |
+-------------+
| "player101" |
| "player102" |
+-------------+

nebula> LOOKUP ON player WHERE player.age  > 45 YIELD id(vertex);
+-------------+-------------+
| VertexID    | id(VERTEX)  |
+-------------+-------------+
| "player144" | "player144" |
| "player140" | "player140" |
+-------------+-------------+


nebula> MATCH (a:player) WHERE id(a) == "player100" \
        RETURN tags(a), labels(a), properties(a);
+------------+------------+-------------------------------+
| tags(a)    | labels(a)  | properties(a)                 |
+------------+------------+-------------------------------+
| ["player"] | ["player"] | {age: 42, name: "Tim Duncan"} |
+------------+------------+-------------------------------+

nebula> MATCH p = (a :player {name : "Tim Duncan"})-[r:serve]-(t) \
        RETURN type(r), rank(r);
+---------+---------+
| type(r) | rank(r) |
+---------+---------+
| "serve" | 0       |
+---------+---------+

nebula> MATCH p = (a :player {name : "Tim Duncan"})-[r:serve]-(t) \
        RETURN startNode(p), endNode(p);
+----------------------------------------------------+----------------------------------+
| startNode(p)                                       | endNode(p)                       |
+----------------------------------------------------+----------------------------------+
| ("player100" :player{age: 42, name: "Tim Duncan"}) | ("team204" :team{name: "Spurs"}) |
+----------------------------------------------------+----------------------------------+

最后更新: October 27, 2021
Back to top