Login: neo4j
Passwort: |Rpmx18YvM6Zn-
MATCH (n) DETACH DELETE n;
CALL apoc.schema.assert({},{},true) YIELD label, key
RETURN *;
CREATE (n:Person) RETURN n;
CREATE (n:Person {nachname:'Kuczera'})
RETURN n;
MATCH (n:Person {nachname:'Kuczera'})
DELETE n;
MERGE (n:Person {nachname:'Kuczera'})
RETURN n;
MATCH (n:Person {nachname:'Kuczera'})
SET n.geburtsort = 'Giessen'
RETURN n;
MATCH (n:Person)
WHERE n.nachname = 'Kuczera'
RETURN n;
MATCH (n:Person)
WHERE n.nachname =~ '.*r.*'
RETURN n;
MERGE (n:Person {nachname:'Schrade', geburtsort:'Worms'}) RETURN *;
MATCH (n1:Person {nachname:'Kuczera'})
MATCH (n2:Person {nachname:'Schrade'})
MERGE (n1)-[:MEIN_LINKER_NACHBAR]->(n2)
RETURN *;
MATCH (n:Person {nachname:'Kuczera'})-[:MEIN_LINKER_NACHBAR]-(m:Person)
RETURN *;
LOAD CSV WITH HEADERS FROM
"https://docs.google.com/spreadsheets/d/1q1n2TqH4blCm0LU3GFisCFLU91f9hm7TROk4eh0auyw/export?format=csv&id=1q1n2TqH4blCm0LU3GFisCFLU91f9hm7TROk4eh0auyw&gid=0"
AS line FIELDTERMINATOR ','
WITH line
WHERE line.nachname IS NOT NULL
CREATE (p1:Person {pid:line.nr, vorname:line.vorname, nachname:line.nachname, geschlecht:line.geschlecht, geburtsort:line.geburtsort, geburtsjahr:line.geburtsjahr, linkerNachbar:line.linkerNachbar, kennt:line.kennt, fach1:line.fach1, fach2:line.fach2, programmiersprachen:line.programmiersprachen, erfahrungDatenmodellierung:line.erfahrungDatenmodellierung, sprachen:line.sprachen, vertiefung:line.vertiefung, socialMedia:line.socialMedia})
RETURN *;
LOAD CSV WITH HEADERS FROM
"https://docs.google.com/spreadsheets/d/1q1n2TqH4blCm0LU3GFisCFLU91f9hm7TROk4eh0auyw/export?format=csv&id=1q1n2TqH4blCm0LU3GFisCFLU91f9hm7TROk4eh0auyw&gid=0"
AS line FIELDTERMINATOR ',' WITH line WHERE line.kennt IS NOT NULL
MATCH (p1:Person {pid:line.nr})
WITH line, p1, split(line.kennt,",") AS kennen
MATCH (p3:Person) WHERE p3.pid in kennen
MERGE (p1)-[:KENNT]->(p3)
WITH p1, line
MATCH (p2:Person {pid:line.linkerNachbar})
MERGE (p1)-[:MEIN_LINKER_NACHBAR]->(p2)
RETURN *;
MATCH (n:Person)
RETURN n.geburtsort, count(*) as count, collect(n.nachname) as nachname
ORDER BY count DESC;
MATCH (n:Person)
RETURN left(n.geburtsjahr, 3) + '0' AS Jahrzehnt, count(*) as Anzahl, collect(n.nachname) as nachname
ORDER BY Anzahl DESC;
// shortest_path
MATCH
(p1:Person { nachname:'Kuczera' }),
(p2:Person { nachname:'Schrade' }),
p = shortestPath((p1)-[*..25]-(p2))
RETURN p;
MATCH
(p1:Person),
(p2:Person),
p = shortestPath((p1)-[*..25]-(p2))
WHERE p1.geburtsjahr = '1992'
AND p2.geburtsjahr = '1995'
AND p1 <> p2
RETURN p;
// Geburtsorte aus der Property geburtsort erstellen
MATCH (n:Person)
WHERE n.geburtsort IS NOT NULL
MERGE (o:Ort {name:n.geburtsort})
MERGE (o)<-[:GEBOREN_IN]-(n)
RETURN *;
// Fächer aus den Properties fach1 und fach2 erstellen
MATCH (n:Person) WHERE n.fach1 IS NOT NULL
MERGE (f1:Fach {name:n.fach1})
MERGE (f1)<-[:STUDIUM]-(n)
RETURN *;
MATCH (n:Person) WHERE n.fach2 IS NOT NULL
MERGE (f2:Fach {name:n.fach2})
MERGE (f2)<-[:STUDIUM]-(n)
RETURN *;
// Programmiersprachen aus der Property programmiersprachen erstellen
MATCH (n:Person)
WHERE n.programmiersprachen IS NOT NULL
FOREACH ( j in split(n.programmiersprachen, ",") |
MERGE (t:Programmiersprache {name:trim(j)})
MERGE (t)<-[:KANN]-(n)
);
// Beliebtestes Fach
MATCH (p:Person)-[:STUDIUM]-(f:Fach)
RETURN f.name AS Fach, count(*) AS Anzahl
ORDER BY Anzahl DESC;
// Geburtsort und Fächer ausgezählt
MATCH (o:Ort)<-[:GEBOREN_IN]-(p:Person)-[:STUDIUM]-(f:Fach)
RETURN o.name AS Ort, f.name AS Fach, count(*) AS Anzahl
ORDER BY Anzahl DESC;