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