Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Cypher/Neo4j中使用WHERE子句_Neo4j_Cypher - Fatal编程技术网

如何在Cypher/Neo4j中使用WHERE子句

如何在Cypher/Neo4j中使用WHERE子句,neo4j,cypher,Neo4j,Cypher,我在Neo4j上建立了这个数据库 我在寻找基努·里维斯也出演过的电影中的演员。我的代码是: MATCH (a:Actor)-[r:ACTS_IN]->(m:Movie) WHERE (m:Movie)<-[r:ACTS_IN]-(:Actor { name:"Keanu Reeves" }) RETURN a.name 但它不起作用。我不熟悉这种语言,我甚至不确定是否应该使用WHERE、WITH或其他语言。首先:查找基努主演的电影列表 第二:通过基努和每一部电影,找到那些电影中不是

我在Neo4j上建立了这个数据库

我在寻找基努·里维斯也出演过的电影中的演员。我的代码是:

MATCH (a:Actor)-[r:ACTS_IN]->(m:Movie)
WHERE (m:Movie)<-[r:ACTS_IN]-(:Actor { name:"Keanu Reeves" })
RETURN a.name
但它不起作用。我不熟悉这种语言,我甚至不确定是否应该使用WHERE、WITH或其他语言。

首先:查找基努主演的电影列表

第二:通过基努和每一部电影,找到那些电影中不是基努的其他演员

第三:返回基努在电影列表中与之合作的同事名单

match (k:Actor {name: 'Keanu Reeves'})-[r:ACTS_IN]->(m:Movie)
with k,m
match (m)<-[:ACTS_IN]-(colleague:Actor)
where colleague <>  k
return distinct(colleague)
第一:找到基努出演的电影列表

第二:通过基努和每一部电影,找到那些电影中不是基努的其他演员

第三:返回基努在电影列表中与之合作的同事名单

match (k:Actor {name: 'Keanu Reeves'})-[r:ACTS_IN]->(m:Movie)
with k,m
match (m)<-[:ACTS_IN]-(colleague:Actor)
where colleague <>  k
return distinct(colleague)

您的查询在MATCH和WHERE子句中使用相同的标识符r。这意味着关系中的两个动作应该是相同的。因此,a将始终是基努·里夫斯的节点

这种形式的查询应该返回包括基努在内的所有相关参与者,但可能不会非常有效:

MATCH (a:Actor)-[r:ACTS_IN]->(m:Movie)
WHERE (m)<-[:ACTS_IN]-(:Actor { name:"Keanu Reeves" })
RETURN DISTINCT a.name;

您的查询在MATCH和WHERE子句中使用相同的标识符r。这意味着关系中的两个动作应该是相同的。因此,a将始终是基努·里夫斯的节点

这种形式的查询应该返回包括基努在内的所有相关参与者,但可能不会非常有效:

MATCH (a:Actor)-[r:ACTS_IN]->(m:Movie)
WHERE (m)<-[:ACTS_IN]-(:Actor { name:"Keanu Reeves" })
RETURN DISTINCT a.name;