79 lines
1.5 KiB
Markdown
79 lines
1.5 KiB
Markdown
|
|
# Writing Queries for Neo4j
|
||
|
|
|
||
|
|
## Part 1
|
||
|
|
|
||
|
|
Name: Nicholas Tamassia
|
||
|
|
|
||
|
|
## Part 2
|
||
|
|
|
||
|
|
NEO4J_URI=bolt://44.202.200.48 NEO4J_USERNAME=neo4j
|
||
|
|
NEO4J_PASSWORD=towers-possession-electrician NEO4J_DATABASE=neo4j
|
||
|
|
|
||
|
|
## Part 3
|
||
|
|
|
||
|
|
**Find movies released after 2000**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (m:Movie)
|
||
|
|
WHERE m.released > 2000
|
||
|
|
RETURN m.title, m.released
|
||
|
|
ORDER BY m.released DESC;
|
||
|
|
```
|
||
|
|
|
||
|
|
**Top 5 most common Actors**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (p:Person)-[:ACTED_IN]->(m)
|
||
|
|
RETURN p.name AS actor, COUNT(m) AS movies
|
||
|
|
ORDER BY movies DESC
|
||
|
|
LIMIT 5;
|
||
|
|
```
|
||
|
|
|
||
|
|
**All movies Tom Hanks was in**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (p:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m:Movie)
|
||
|
|
RETURN m.title, m.released;
|
||
|
|
```
|
||
|
|
|
||
|
|
**Movies directed by Lana Wachowski**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (d:Person {name: "Lana Wachowski"})-[:DIRECTED]->(m)
|
||
|
|
RETURN m.title, m.released;
|
||
|
|
```
|
||
|
|
|
||
|
|
**People who have acted together**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (p1:Person)-[:ACTED_IN]->(m:Movie)<-[:ACTED_IN]-(p2:Person)
|
||
|
|
WHERE p1 <> p2
|
||
|
|
RETURN DISTINCT p1.name, p2.name, m.title
|
||
|
|
ORDER BY m.title;
|
||
|
|
```
|
||
|
|
|
||
|
|
**Actor who have worked with Tom Hanks but not each other**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coactor)
|
||
|
|
RETURN DISTINCT coactor.name;
|
||
|
|
```
|
||
|
|
|
||
|
|
**Average release year to Tom Cruise movies**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH (p:Person {name:"Tom Cruise"})-[:ACTED_IN]->(m)
|
||
|
|
RETURN p.name, avg(m.released) AS avgReleaseYear;
|
||
|
|
```
|
||
|
|
|
||
|
|
**The shortest Actor/Director path between Tom Hanks and Keanu Reeves**
|
||
|
|
|
||
|
|
```cypher
|
||
|
|
MATCH path = shortestPath(
|
||
|
|
(a:Person {name:"Keanu Reeves"})-
|
||
|
|
[:ACTED_IN|DIRECTED*]-
|
||
|
|
(b:Person {name:"Tom Hanks"})
|
||
|
|
)
|
||
|
|
RETURN path;
|
||
|
|
```
|