跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

图元素引用类型

图元素引用类型表示对图中点或边的引用,包括:

  • 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不能作为点或边的属性类型。
  • 比较引用值时,引用相等表示两个引用指向同一个图元素,不表示两个不同图元素的属性值恰好相同。