|
| 1 | +-- Create nodes |
| 2 | +GRAPH.QUERY graph1 "CREATE (:Person {name: 'John', age: 30})" |
| 3 | +GRAPH.QUERY graph1 "CREATE (:Person {name: 'Jane', age: 25})" |
| 4 | +GRAPH.QUERY graph1 "CREATE (:Company {name: 'TechCorp', founded: 2010})" |
| 5 | + |
| 6 | +-- Create relationships |
| 7 | +GRAPH.QUERY graph2 "CREATE (:Person {name: 'Alice', age: 28})-[:WORKS_FOR {since: 2020}]->(:Company {name: 'DataCorp', employees: 500})" |
| 8 | +GRAPH.QUERY graph2 "MATCH (p:Person {name: 'Alice'}), (c:Company {name: 'DataCorp'}) CREATE (p)-[:LIVES_IN]->(:City {name: 'New York', population: 8000000})" |
| 9 | + |
| 10 | +-- Match and return queries |
| 11 | +GRAPH.QUERY graph3 "MATCH (p:Person) RETURN p.name, p.age" |
| 12 | +GRAPH.QUERY graph3 "MATCH (p:Person)-[:WORKS_FOR]->(c:Company) RETURN p.name, c.name" |
| 13 | + |
| 14 | +-- Update node properties |
| 15 | +GRAPH.QUERY graph4 "CREATE (:Employee {id: 1, name: 'Bob', salary: 50000})" |
| 16 | +GRAPH.QUERY graph4 "MATCH (e:Employee {id: 1}) SET e.salary = 55000" |
| 17 | +GRAPH.QUERY graph4 "MATCH (e:Employee {id: 1}) SET e.department = 'Engineering'" |
| 18 | + |
| 19 | +-- Delete operations |
| 20 | +GRAPH.QUERY graph5 "CREATE (:TempNode {id: 'temp1'})" |
| 21 | +GRAPH.QUERY graph5 "MATCH (t:TempNode {id: 'temp1'}) DELETE t" |
| 22 | + |
| 23 | +-- Create with multiple nodes and relationships |
| 24 | +GRAPH.QUERY graph6 "CREATE (p1:Person {name: 'Charlie', age: 35})-[:KNOWS {since: 2015}]->(p2:Person {name: 'David', age: 32})-[:WORKS_FOR]->(c:Company {name: 'StartupXYZ'})" |
| 25 | + |
| 26 | +-- Complex queries with WHERE clauses |
| 27 | +GRAPH.QUERY graph7 "CREATE (:Product {name: 'Laptop', price: 1200, category: 'Electronics'})" |
| 28 | +GRAPH.QUERY graph7 "CREATE (:Product {name: 'Book', price: 25, category: 'Education'})" |
| 29 | +GRAPH.QUERY graph7 "MATCH (p:Product) WHERE p.price > 100 RETURN p.name, p.price" |
| 30 | + |
| 31 | +-- Aggregation queries |
| 32 | +GRAPH.QUERY graph8 "CREATE (:Order {id: 1, amount: 150, date: '2023-01-15'})" |
| 33 | +GRAPH.QUERY graph8 "CREATE (:Order {id: 2, amount: 300, date: '2023-01-16'})" |
| 34 | +GRAPH.QUERY graph8 "MATCH (o:Order) RETURN count(o), sum(o.amount), avg(o.amount)" |
| 35 | + |
| 36 | +-- Path queries |
| 37 | +GRAPH.QUERY graph9 "CREATE (a:Airport {code: 'JFK', city: 'New York'})-[:FLIGHT {duration: 360}]->(b:Airport {code: 'LAX', city: 'Los Angeles'})" |
| 38 | +GRAPH.QUERY graph9 "CREATE (b:Airport {code: 'LAX'})-[:FLIGHT {duration: 240}]->(c:Airport {code: 'SFO', city: 'San Francisco'})" |
| 39 | +GRAPH.QUERY graph9 "MATCH path = (a:Airport {code: 'JFK'})-[:FLIGHT*1..2]->(c:Airport) RETURN path" |
| 40 | + |
| 41 | +-- Update relationships |
| 42 | +GRAPH.QUERY graph10 "CREATE (p:Person {name: 'Eve'})-[r:FRIEND_OF {since: 2020}]->(f:Person {name: 'Frank'})" |
| 43 | +GRAPH.QUERY graph10 "MATCH (p:Person {name: 'Eve'})-[r:FRIEND_OF]->(f:Person {name: 'Frank'}) SET r.closeness = 'high'" |
| 44 | + |
| 45 | +-- Conditional updates |
| 46 | +GRAPH.QUERY graph11 "CREATE (:User {id: 1, status: 'active', last_login: '2023-01-01'})" |
| 47 | +GRAPH.QUERY graph11 "MATCH (u:User {id: 1}) SET u.status = CASE WHEN u.last_login < '2023-06-01' THEN 'inactive' ELSE 'active' END" |
| 48 | + |
| 49 | +-- Multiple labels |
| 50 | +GRAPH.QUERY graph12 "CREATE (:Person:Employee {name: 'Grace', id: 123, department: 'HR'})" |
| 51 | +GRAPH.QUERY graph12 "MATCH (pe:Person:Employee) RETURN pe.name, pe.department" |
| 52 | + |
| 53 | +-- Index operations (if supported) |
| 54 | +GRAPH. QUERY graph13 "CREATE (:Customer {email: '[email protected]', name: 'John Doe'})" |
| 55 | +GRAPH. QUERY graph13 "CREATE (:Customer {email: '[email protected]', name: 'Jane Smith'})" |
| 56 | + |
| 57 | +-- Complex relationship patterns |
| 58 | +GRAPH.QUERY graph14 "CREATE (m:Manager {name: 'Sarah'})-[:MANAGES]->(e1:Employee {name: 'Tom'}), (m)-[:MANAGES]->(e2:Employee {name: 'Lisa'})" |
| 59 | +GRAPH.QUERY graph14 "MATCH (m:Manager)-[:MANAGES]->(e:Employee) RETURN m.name, collect(e.name)" |
| 60 | + |
| 61 | +-- Optional match |
| 62 | +GRAPH.QUERY graph15 "CREATE (:Person {name: 'Alex'})" |
| 63 | +GRAPH.QUERY graph15 "CREATE (:Person {name: 'Beth'})-[:HAS_PHONE]->(:Phone {number: '555-0123'})" |
| 64 | +GRAPH.QUERY graph15 "MATCH (p:Person) OPTIONAL MATCH (p)-[:HAS_PHONE]->(phone:Phone) RETURN p.name, phone.number" |
| 65 | + |
| 66 | +-- Union queries |
| 67 | +GRAPH.QUERY graph16 "CREATE (:Student {name: 'Mike', grade: 'A'})" |
| 68 | +GRAPH.QUERY graph16 "CREATE (:Teacher {name: 'Prof. Wilson', subject: 'Math'})" |
| 69 | +GRAPH.QUERY graph16 "MATCH (s:Student) RETURN s.name AS name, 'Student' AS type UNION MATCH (t:Teacher) RETURN t.name AS name, 'Teacher' AS type" |
| 70 | + |
| 71 | +-- Delete with relationships |
| 72 | +GRAPH.QUERY graph17 "CREATE (p:Person {name: 'DeleteMe'})-[:OWNS]->(c:Car {model: 'Toyota'})" |
| 73 | +GRAPH.QUERY graph17 "MATCH (p:Person {name: 'DeleteMe'})-[r:OWNS]->(c:Car) DELETE r, p, c" |
| 74 | + |
| 75 | +-- Bulk operations |
| 76 | +GRAPH.QUERY graph18 "UNWIND range(1, 5) AS i CREATE (:Number {value: i})" |
| 77 | +GRAPH.QUERY graph18 "MATCH (n:Number) WHERE n.value % 2 = 0 SET n.type = 'even'" |
| 78 | +GRAPH.QUERY graph18 "MATCH (n:Number) WHERE n.value % 2 = 1 SET n.type = 'odd'" |
0 commit comments