图元素引用类型¶
图元素引用类型表示对图中点或边的引用,包括:
NODE:点引用值类型。EDGE:边引用值类型。
引用值表示图元素的身份,而不是图元素属性的副本。通过引用值可以访问被引用点或边的属性。NODE和EDGE不能作为点或边的属性类型。
获取图元素引用值¶
图元素模式中的变量保存与模式匹配的图元素引用值。例如:
'''
USE movie
MATCH (a@Actor)-[e@Act]->(m@Movie)
RETURN a, e, a.name
LIMIT 1
'''
在上述查询中:
a和m保存点引用值。e保存边引用值。a.name通过点引用访问被引用点的name属性。
查看图元素引用值的类型¶
typeof()函数可以返回引用值的完整类型:
'''
USE movie
MATCH (a@Actor)-[e]->(m@Movie)
RETURN typeof(a) AS node_type, typeof(e) AS edge_type
LIMIT 1
'''
返回:
+---------------+------------------------------+
| node_type | edge_type |
+---------------+------------------------------+
| Node<(Actor)> | Edge<(Actor)-[Act]->(Movie)> |
+---------------+------------------------------+
NODE和EDGE是通用引用值类型。Node<(Actor)>包含被引用点的类型。Edge<(Actor)-[Act]->(Movie)>包含被引用边的类型及其起点和终点的类型。
与图元素类型的区别¶
引用值类型与图类型中定义的点类型和边类型是不同概念。
| 术语 | 示例 | 含义 |
|---|---|---|
| 点引用值类型 | NODE、Node<(Actor)> |
查询变量或参数的值类型 |
| 点类型 | NODE TYPE Actor |
图类型中定义的一类点 |
| 边引用值类型 | EDGE、Edge<(Actor)-[Act]->(Movie)> |
查询变量或参数的值类型 |
| 边类型 | EDGE TYPE Act |
图类型中定义的一类边 |
用作过程参数类型¶
定义用户自定义过程(UDP)时,可以使用NODE或EDGE声明输入参数类型:
parameter_name NODE
parameter_name EDGE
NODE参数接受点引用值,EDGE参数接受边引用值。详细语法,请参见 CREATE PROCEDURE。
限制¶
NODE和EDGE不能作为点或边的属性类型。- 比较引用值时,引用相等表示两个引用指向同一个图元素,不表示两个不同图元素的属性值恰好相同。