Memgraph

MemGQL supports two Memgraph connector modes:

  • memgraph — passthrough, forwards queries as-is (Cypher)
  • memgraph-gql — translates GQL to Cypher before execution

1. Start Memgraph

docker network create memgql-net
 
docker run -d --rm \
    --name memgraph-dev \
    --network memgql-net \
    -p 7687:7687 \
    memgraph/memgraph-mage:3.9.0 \
    --log-level=TRACE --also-log-to-stderr

2. Start MemGQL (GQL mode)

docker run --rm \
    --name memgql \
    --network memgql-net \
    --stop-timeout 2 \
    -p 7688:7688 \
    --env CONNECTOR_TYPE=memgraph-gql \
    --env MEMGRAPH_URI=memgraph-dev:7687 \
    --env BOLT_LISTEN_ADDR=0.0.0.0:7688 \
    memgraph/memgql:latest

For passthrough mode, use CONNECTOR_TYPE=memgraph instead.

3. Connect

mgconsole --port 7688

4. Seed data

INSERT
  (alice:Person {name: "Alice", age: 30}),
  (bob:Person {name: "Bob", age: 25}),
  (acme:Company {name: "Acme Corp"}),
  (alice)-[:KNOWS]->(bob),
  (alice)-[:WORKS_AT {role: "Engineer"}]->(acme);

5. Query

MATCH (p:Person) RETURN p.name, p.age;
MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;

For environment variables, see Configuration.