Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Neo4j 从cypher开始-让演员在过去2年中表演_Neo4j - Fatal编程技术网

Neo4j 从cypher开始-让演员在过去2年中表演

Neo4j 从cypher开始-让演员在过去2年中表演,neo4j,Neo4j,我如何找到只在某一年或某一年或某一年或某一年或某一年之前演出的演员 我试着写一个查询,但这限制了我去寻找在某一年演戏的演员,但却不能限制我去寻找过去几年演戏的演员 MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies) where actorMovies.year = 2014 RETURN actor.name Limit 100 基本上,我希望找到一位仅在2014年出演电影的演员,以及另一组仅在90年代出演电影的演员。使用本例中的数据: 你可以这

我如何找到只在某一年或某一年或某一年或某一年或某一年之前演出的演员

我试着写一个查询,但这限制了我去寻找在某一年演戏的演员,但却不能限制我去寻找过去几年演戏的演员

MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies) where actorMovies.year = 2014
 RETURN actor.name Limit 100

基本上,我希望找到一位仅在2014年出演电影的演员,以及另一组仅在90年代出演电影的演员。

使用本例中的数据: 你可以这样做:

MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies)
WITH actor, collect(actorMovies.year) AS years
WHERE '1999-03-31' IN years
RETURN actor.name
关键是在WITH子句中进行聚合,然后在WHERE子句中使用结果

如果年份使用整数,WHERE子句可能如下所示:

WHERE 1999 IN years
基本上,我想找一个只在2014年出演电影的演员,另一组只在90年代出演的演员

可以这样做的一种方法是编写两个查询,并使用union将它们连接在一起:

MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies) where actorMovies.year = 2014
RETURN actor.name

UNION

MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies) where actorMovies.year >= 1990 AND actorMovies.year < 2000
RETURN actor.name
MATCH(actor:actor)-[:ACTS_IN]->(actorMovies),其中actorMovies.year=2014
返回actor.name
联合
匹配(actor:actor)-[:ACTS_IN]->(actorMovies),其中actorMovies.year>=1990,actorMovies.year<2000
返回actor.name

my years只是一年,它不会返回任何东西。。。匹配(actor:actor)-[:ACTS_IN]->(actorMovies)与actor,收集(actorMovies.year)作为年份,其中年份中的'2013'返回actor.name是否删除年份前后的引号会产生影响?确实如此,但真正的问题是只返回在特定年份中表演的演员,而不返回之前或之后的演员,其中min(years)>1989年和最长(年)<2000年