Skip to content

Schema functions

Nebula Graph supports the following schema functions.

For nGQL statements

Note

  • The following functions are available in both the WHERE and YIELD clauses in GO statements.
  • The following functions are only available in the YIELD clauses in LOOKUP and YIELD statements.

| Function | Description | |------------------------+---------------------------------------------------------------------------------------------------------| | id(vertex) | Returns the ID of a vertex. The data type of the result is the same as the vertex ID. | | map properties(vertex) | Returns the properties of a vertex. | | map properties(edge) | Returns the properties of an edge. | | string type(edge) | Returns the edge type of an edge. | | src(edge) | Returns the source vertex ID of an edge. The data type of the result is the same as the vertex ID. | | dst(edge) | Returns the destination vertex ID of an edge. The data type of the result is the same as the vertex ID. | | int rank(edge) | Returns the rank value of an edge. |

For statements compatible with openCypher

Function Description
id(<vertex>) Returns the ID of a vertex. The data type of the result is the same as the vertex ID.
list tags(<vertex>) Returns the Tag of a vertex, which serves the same purpose as labels().
list labels(<vertex>) Returns the Tag of a vertex, which serves the same purpose as tags(). This function is used for compatibility with openCypher syntax.
map properties(<vertex_or_edge>) Returns the properties of a vertex or an edge.
string type(<edge>) Returns the edge type of an edge.
src(<edge>) Returns the source vertex ID of an edge. The data type of the result is the same as the vertex ID.
dst(<edge>) Returns the destination vertex ID of an edge. The data type of the result is the same as the vertex ID.
vertex startNode(<path>) Visits an edge or a path and returns its source vertex ID.
string endNode(<path>) Visits an edge or a path and returns its destination vertex ID.
int rank(<edge>) Returns the rank value of an edge.

Examples

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

Last update: November 1, 2021
Back to top