从密码开始 - 让演员在过去的2年里采取行动

时间:2014-11-17 11:50:29

标签: neo4j

我怎样才能找到仅在某一年/更短时间内行动的演员

我尝试写一个查询,但这限制了我找到​​在某一年起作用的演员,但并没有限制找到过去几年中的演员。

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

基本上我想找到一个只在2014年从事电影的演员和另一组仅在90年代演出的演员。

2 个答案:

答案 0 :(得分:2)

  

基本上我想找到一个只在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

答案 1 :(得分:1)

使用此示例中的数据:http://neo4j.com/docs/stable/cypherdoc-movie-database.html 你可以做以下事情:

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