USE
USE
子句决定查询或查询部分针对哪个图执行。它支持查询和模式命令。
语法
USE
子句只能作为模式命令的前缀,或作为查询的第一个子句出现。
USE <graph>
<other clauses>
其中 <graph>
指的是 DBMS 中数据库的名称或别名。
复合数据库语法
当针对复合数据库运行查询时,USE
子句也可以作为以下内容的第一个子句出现:
-
UNION 部分
USE <graph> <other clauses> UNION USE <graph> <other clauses>
-
子查询
CALL () { USE <graph> <other clauses> }
在子查询中,
USE
子句可以直接出现在变量作用域子句之后:CALL () { … }
(在 Neo4j 5.23 中引入)。或者,如果您使用的是旧版 Neo4j,则直接在导入WITH
子句之后。
当对复合数据库执行查询时,USE
子句只能引用属于当前复合数据库的图。
示例
查询复合数据库的组成图
此示例假设 DBMS 包含一个名为 myComposite
的复合数据库,其中包含一个名为 myConstituent
的别名。
查询
USE myComposite.myConstituent
MATCH (n) RETURN n
动态查询复合数据库的组成图
graph.byName()
函数可以在 USE
子句中使用,以从包含组成部分限定名称的 STRING
值中解析出组成图。
此示例使用一个名为 myComposite
的复合数据库,其中包含一个名为 myConstituent
的别名。
查询
USE graph.byName('myComposite.myConstituent')
MATCH (n) RETURN n
该参数可以是任何评估为组成图名称的表达式 — 例如一个参数。
查询
USE graph.byName($graphName)
MATCH (n) RETURN n
使用 elementId 查询复合数据库的组成部分
graph.byElementId()
函数可以在 USE
子句中使用,以解析给定元素 ID 所属的组成图。从 Neo4j 5.26 开始,它支持标准数据库和复合数据库(在以前的版本中,它仅在复合数据库上可用)。
在标准数据库上,包含 graph.byElementId() 的 USE 子句不能与其他 USE 子句组合使用,除非后续的 USE 子句引用相同的元素 ID。 |
在以下示例中,假设 DBMS 包含与给定元素 ID 对应的数据库。如果您连接到复合数据库,则它需要是指向组成数据库的元素 ID,该组成数据库是 DBMS 中的标准数据库。
查询
USE graph.byElementId("4:c0a65d96-4993-4b0c-b036-e7ebd9174905:0")
MATCH (n) RETURN n