返回演员和电影,其中不由特定导演导演,但在其他电影中与该导演合作。Cypher(neo4j)
例如: 下面的查询将返回与Lana Wachowski合作最多的10位参与者返回演员和电影,其中不由特定导演导演,但在其他电影中与该导演合作。Cypher(neo4j),neo4j,cypher,Neo4j,Cypher,例如: 下面的查询将返回与Lana Wachowski合作最多的10位参与者 MATCH (actor:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(lana:Person {name: 'Lana Wachowski'}) RETURN actor.name , COUNT(m), collect(m.title) ORDER by COUNT(m) desc LIMIT 10 匹配(演员:人)-[:扮演]->(m:电影)(m:电影)
MATCH (actor:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(lana:Person {name: 'Lana Wachowski'})
RETURN actor.name , COUNT(m), collect(m.title)
ORDER by COUNT(m) desc
LIMIT 10
匹配(演员:人)-[:扮演]->(m:电影)(m:电影)(其他:电影)
与演员,其他
如果不存在((lana)-[:DIRECTED]->(other:Movie)似乎最终只需传递m变量,就可以再次使用它对返回进行排序
MATCH (actor:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(lana:Person {name: 'Lana Wachowski'}),
(actor:Person)-[:ACTED_IN]->(other:Movie)
WITH actor, m, other
WHERE NOT EXISTS((lana)-[:DIRECTED]->(other:Movie)<-[:ACTED_IN]-(actor))
RETURN actor.name , other.title, COUNT(m)
ORDER BY COUNT(m) desc
LIMIT 10
匹配(演员:人)-[:扮演]->(m:电影)(其他:电影)
和演员m,其他
不存在的地方((拉娜)-[:导演]->(其他:电影)(m:电影)(其他:电影)
和演员m,其他
如果不存在((lana)-[:DIRECTED]->(其他:Movie)您可以收集在lana导演的电影中扮演的演员。
然后,为每个演员,获得电影和收集导演。
检查该组控制器中是否没有lana。
然后收集这些电影的标题,并按电影的数量进行排序
因此,所有由拉娜执导的演员和其他非拉娜执导的电影都是汤姆·汉克斯(云图)、基努(矩阵)、本·迈尔斯(极速赛车)、雨果(云图和矩阵)和雨(极速赛车)
你能给我们举一个结果的例子吗?
MATCH (actor:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(lana:Person {name: 'Lana Wachowski'}),
(actor:Person)-[:ACTED_IN]->(other:Movie)
WITH actor, m, other
WHERE NOT EXISTS((lana)-[:DIRECTED]->(other:Movie)<-[:ACTED_IN]-(actor))
RETURN actor.name , other.title, COUNT(m)
ORDER BY COUNT(m) desc
LIMIT 10
MATCH (actor:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(lana:Person {name: 'Lana Wachowski'}),
(actor:Person)-[:ACTED_IN]->(other:Movie)
WITH actor, m, other
WHERE NOT EXISTS((lana)-[:DIRECTED]->(other:Movie)<-[:ACTED_IN]-(actor))
RETURN DISTINCT actor.name , collect(other.title), COUNT(m)
ORDER BY COUNT(m) desc
LIMIT 10
WITH [(a:Person)-[:ACTED_IN]->(:Movie)<-[:DIRECTED]-(:Person {name: 'Lana Wachowski'})|a] as actors
UNWIND actors as actor
MATCH (actor)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(p:Person)
WITH actor, m, collect(p) as directors WHERE NOT ANY (d in directors WHERE d.name = 'Lana Wachowski')
RETURN actor.name , collect(m.title), COUNT(m)
ORDER BY COUNT(m) desc
LIMIT 10
╒══════════════╤══════════════════════════════════════════════════════════════════════╤══════════╕
│"actor.name" │"collect(m.title)" │"COUNT(m)"│
╞══════════════╪══════════════════════════════════════════════════════════════════════╪══════════╡
│"Tom Hanks" │["Apollo 13","You've Got Mail","A League of Their Own","Joe Versus the│11 │
│ │ Volcano","That Thing You Do","The Da Vinci Code","Cast Away","The Gre│ │
│ │en Mile","Sleepless in Seattle","The Polar Express","Charlie Wilson's │ │
│ │War"] │ │
├──────────────┼──────────────────────────────────────────────────────────────────────┼──────────┤
│"Keanu Reeves"│["Something's Gotta Give","The Replacements","Johnny Mnemonic","The De│4 │
│ │vil's Advocate"] │ │
├──────────────┼──────────────────────────────────────────────────────────────────────┼──────────┤
│"Ben Miles" │["Ninja Assassin","V for Vendetta"] │2 │
├──────────────┼──────────────────────────────────────────────────────────────────────┼──────────┤
│"Hugo Weaving"│["V for Vendetta"] │1 │
├──────────────┼──────────────────────────────────────────────────────────────────────┼──────────┤
│"Rain" │["Ninja Assassin"] │1 │
└──────────────┴──────────────────────────────────────────────────────────────────────┴──────────┘