Getting Started with Neo4j

Download, run.

Create: CREATE (a:Person {name:'Alice'})-[":KNOWS"]->(b:Person {name:'Bob'})

Query: MATCH (a:Person)-[":KNOWS"]->(b) RETURN a, b

Neo4j: Community free; enterprise scales.

Install: Download, bin/neo4j console.

Python driver: pip install neo4j.

Code:

from neo4j import GraphDatabase

driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))

def add_friend(tx, name, friend_name):
    tx.run("MERGE (a:Person {name: $name}) "
           "MERGE (b:Person {name: $friend_name}) "
           "MERGE (a)-[":KNOWS"]->(b)", name=name, friend_name=friend_name)

with driver.session() as session:
    session.execute_write(add_friend, "Alice", "Bob")

Query:

MATCH (a:Person)-[":KNOWS"]->(b) RETURN a.name, b.name

Scale: Use clusters for prod.