Python and Neo4j: Working with Cypher Query Language for Beginners

14.09.2024

Introduction to Cypher Query Language

Cypher is a declarative graph query language that allows users to query Neo4j databases in an intuitive and expressive way. If you are new to Cypher, this guide will help you get started with the basics of writing Cypher queries.

Graph Data Science with Python and Neo4j: Hands-on Projects on ...

Basic Structure of Cypher Queries

A Cypher query consists of patterns that describe the graph relationships you want to match. Each pattern is enclosed in parentheses and can contain nodes, relationships, and properties. Here is an example of a simple Cypher query:

Nigel Small | A Pythonic Tour of Neo4j and the Cypher Query …
Apr 25, 2017 … … Cypher query language from the point of view of a Python user. We’ll look at how to run queries and visualise or extract those results into …
MATCH (n:Person)-[:FRIENDS_WITH]-(m:Person) RETURN n, m

Nodes and Relationships

In Cypher, nodes are represented by parentheses and relationships by brackets. You can specify labels for nodes and types for relationships to filter the results. For example:

(n:Person)-[:FRIENDS_WITH]-(m:Person)

Properties

Nodes and relationships in Neo4j can have properties that store additional information. You can filter nodes and relationships based on their properties in Cypher queries. Here is an example:

MATCH (n:Person {name: 'Alice'}) RETURN n

Patterns and Matches

Cypher queries use the MATCH clause to find patterns in the graph data. You can specify multiple patterns in a single query to retrieve more complex data. Here is an example:

MATCH (n:Person)-[:FRIENDS_WITH]-(m:Person)-[:LIKES]->(p:Product) RETURN n, m, p

Filtering and Sorting

You can use the WHERE clause to filter the results of a Cypher query based on specific conditions. Additionally, you can use the ORDER BY clause to sort the results based on a property. Here is an example:

MATCH (n:Person)-[:FRIENDS_WITH]-(m:Person) WHERE n.age > 30 RETURN n, m ORDER BY n.name

Aggregation and Functions

Cypher provides various aggregation functions like COUNT, SUM, AVG, etc., to perform calculations on the query results. You can also use functions to manipulate strings, numbers, and dates in Cypher queries. Here is an example:

MATCH (n:Person)-[:FRIENDS_WITH]-(m:Person) RETURN COUNT(m) AS num_friends

Creating and Updating Data

You can use the CREATE and SET clauses to create nodes and relationships or update their properties in Neo4j using Cypher queries. Here is an example:

CREATE (n:Person {name: 'Bob', age: 25})

Deleting Data

To delete nodes and relationships from the Neo4j database, you can use the DETACH DELETE clause in Cypher queries. Here is an example:

MATCH (n:Person {name: 'Bob'}) DETACH DELETE n

Conclusion

Learning Cypher is essential for effectively querying Neo4j databases and working with graph data. By mastering the basics of Cypher query language, you can perform complex graph operations and extract valuable insights from your data.

Yan Hadzhyisky

fullstack PHP+JS+REACT developer