跳转至

Schema 函数

Nebula Graph 支持以下 Schema 函数。

原生 nGQL 语句适用

Note

  • YIELD 子句中可以使用如下函数。
  • WHERE 子句暂不支持使用如下函数。
函数 说明
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。

示例

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"}) |
+----------------------------------------------------+----------------------------------+

最后更新: March 7, 2023