Contents

Neo4j Notes

Combine Multiple Variabel into One

OPTIONAL MATCH (p1:Person)
WHERE p1.country = 'CN' AND NOT (:Parents) --> (p1)
OPTIONAL MATCH (p2:Person)
WHERE p2.country = 'USA'
WITH [x IN collect(p1) + collect(p2) | id(x)] AS ids

OPTIONAL MATCH (p:Person)
WHERE id(p) IN ids

OPTIONAL MATCH (p) -[:HAS]-> (:Car)
RETURN p

Conditional Delete

MATCH (ip:IP) --> (p:Port) WHERE id(ip) = 1
WITH count(p) AS cnt, ip, collect(p) AS ports
WHERE cnt > 100
FOREACH (p IN ports | DETACH DELETE p)
DETACH DELETE ip