我如何發現,僅作用在某年/秒,而不是在這之前開始暗號 - 讓演員在過去的2年
我試着寫一個查詢的演員擔任,但限制我找演員是在某一年表演但不拘泥於找到過去幾年的演員。
MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies) where actorMovies.year = 2014
RETURN actor.name Limit 100
基本上我想找一個只參加2014年電影演員而另一組演員只參加90年代的演出。
我如何發現,僅作用在某年/秒,而不是在這之前開始暗號 - 讓演員在過去的2年
我試着寫一個查詢的演員擔任,但限制我找演員是在某一年表演但不拘泥於找到過去幾年的演員。
MATCH (actor:Actor)-[:ACTS_IN]->(actorMovies) where actorMovies.year = 2014
RETURN actor.name Limit 100
基本上我想找一個只參加2014年電影演員而另一組演員只參加90年代的演出。
基本上我想找到誰在電影中只有2014擔任演員,另一組演員誰僅在90年代效力。你可以這樣做
一種方法是寫兩個查詢,並與工會一起加入他們的行列:
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
在這個例子中使用的數據: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
我多年僅僅是一年的時間,它不返回任何東西...... MATCH (actor:Actor) - [:ACTS_IN] - >(actorMovies) WITH actor,collect(actorMovies.year)AS years WHERE'2013'IN years RETURN actor.name –
是否刪除全年的引號使得區別? – nawroth
它的確如此,但是真正的q只返回只在這個特定年份中行動的演員,並且從不在之前或之後從未在之後 –