Neo4j

Native Graphdatenbank - Cypher-Abfragesprache, Beziehungsmodellierung, schnelle Traversierung

TL;DR

Was: Eine native Graphdatenbank für verbundene Daten.

Warum: Beziehungsorientiert, intuitive Datenmodellierung, leistungsstarke Traversierungen, Cypher-Abfragesprache.

Quick Start

Mit Docker installieren:

docker run --name neo4j -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/password \
  -d neo4j:latest

Zugriff: Öffnen Sie http://localhost:7474 (Browser-UI)

Verbinden: Verwenden Sie neo4j / password

Knoten und Beziehungen erstellen:

CREATE (john:Person {name: 'John', age: 30})
CREATE (jane:Person {name: 'Jane', age: 28})
CREATE (john)-[:KNOWS]->(jane)
RETURN john, jane

Cheatsheet

OperationCypher
Knoten erstellenCREATE (n:Label {props})
Beziehung erstellenCREATE (a)-[:TYPE]->(b)
Knoten findenMATCH (n:Label) RETURN n
Nach Eigenschaft findenMATCH (n {name: 'John'}) RETURN n
Beziehungen findenMATCH (a)-[r:TYPE]->(b) RETURN r
AktualisierenSET n.prop = value
LöschenDELETE n oder DETACH DELETE n

Gotchas

Basic CRUD

// Create
CREATE (p:Person {name: 'Alice', email: '[email protected]'})

// Read
MATCH (p:Person {name: 'Alice'}) RETURN p

// Update
MATCH (p:Person {name: 'Alice'})
SET p.age = 25
RETURN p

// Delete (with relationships)
MATCH (p:Person {name: 'Alice'})
DETACH DELETE p

Relationship patterns

// Directed relationship
MATCH (a:Person)-[:KNOWS]->(b:Person)
RETURN a, b

// Undirected (any direction)
MATCH (a:Person)-[:KNOWS]-(b:Person)
RETURN a, b

// Multiple hops
MATCH (a:Person)-[:KNOWS*1..3]->(b:Person)
RETURN a, b

// Variable-length path
MATCH path = (a:Person)-[:KNOWS*]->(b:Person)
RETURN path

Aggregations

// Count friends
MATCH (p:Person)-[:KNOWS]->(friend)
RETURN p.name, count(friend) as friendCount

// Group by
MATCH (p:Person)
RETURN p.city, count(p) as population
ORDER BY population DESC

Indexes

// Create index
CREATE INDEX FOR (p:Person) ON (p.name)

// Create constraint (unique)
CREATE CONSTRAINT FOR (p:Person) REQUIRE p.email IS UNIQUE

// Show indexes
SHOW INDEXES

Next Steps