Cypher的初学者:列出所有3部Matrix电影中的演员

时间:2013-09-23 16:28:43

标签: neo4j cypher

上周五我开始学习Neo4j。

我已经在我的本地数据库上完成了Cypher examples,是否还有一些我想学习如何提问的其他查询:

鉴于这三个矩阵电影,我如何只列出在这三个电影中扮演角色的演员? 或者更一般地说,假设我有一堆电影,演员和ACTS_IN关系。

鉴于3部电影:

  • 列出所有参与ALL 3
  • 的演员
  • 列出在这3部电影中扮演任何角色的所有演员(以及他们演过的电影)

同样,给出3位演员

  • 列出所有3位演员的电影
  • 列出所有拥有这3位演员(以及他们有哪些演员)的电影

谢谢!

1 个答案:

答案 0 :(得分:3)

全部3:

start m1=node:node_auto_index(title="The Matrix"),
      m2=node:node_auto_index(title="The Matrix Reloaded"),
      m3=node:node_auto_index(title="The Matrix Revolutions")
match a-[:ACTS_IN]->m1, a-[:ACTS_IN]->m2, a-[:ACTS_IN]->m3
return a;

采取任何行动:(最简单的语法是仅使用2.0的联合,所以我将继续使用)

start m=node:node_auto_index(title="The Matrix")
match a-[:ACTS_IN]->m
return a, m
union
start m=node:node_auto_index(title="The Matrix Reloaded")
match a-[:ACTS_IN]->m
return a, m
union
start m=node:node_auto_index(title="The Matrix Revolutions")
match a-[:ACTS_IN]->m
return a, m;

对于其他两个查询,它们基本相同,只需切换名称的标题,然后输入人名,并在start子句中将m换成a。 :)