apoc.graph.fromCypher

此过程返回仅能被其他 APOC 过程访问的虚拟节点和关系。有关更多信息,请参阅 虚拟节点与关系(图投影)

此过程不建议在多线程中运行,因此并行运行时(Parallel runtime)不支持该过程。有关更多信息,请参阅 Cypher 手册 → 并行运行时

详细信息

语法

apoc.graph.fromCypher(statement, params, name, props) :: (graph)

描述

通过从给定 Cypher 语句返回的数据中提取所有 NODE(节点)和 RELATIONSHIP(关系)值,生成一个虚拟子图。

输入参数

名称

类型

描述

statement

STRING

用于创建图的 Cypher 语句。

params

MAP

给定 Cypher 语句的参数。

名称 (name)

STRING

生成的图的名称。

props

MAP

要在生成的图中包含的属性。

返回参数

名称

类型

描述

graph(图)

MAP

生成的图。

使用示例

本节中的示例基于以下示例图

CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})
CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})
CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})
CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})
CREATE (JoelS:Person {name:'Joel Silver', born:1952})
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix);
CALL apoc.graph.fromCypher(
  'MATCH (p:Person)-[r:DIRECTED]->(m:Movie) RETURN *',
  {},
  'directors',
  {description: "Virtual Graph of all directorships"}
)
YIELD graph AS g
RETURN g;
结果
g

{name: "directors", relationships: [[:DIRECTED], [:DIRECTED]], nodes: [(:Movie {tagline: "Welcome to the Real World", title: "The Matrix", released: 1999}), (:Person {name: "Lilly Wachowski", born: 1967}), (:Person {name: "Lana Wachowski", born: 1965})], properties: {description: "所有导演关系的虚拟图"}}