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