Swiftorial Logo
Home
Swift Lessons
AI Tools
Learn More
Career
Resources

Neo4j WHERE, FILTERS, and Parameters

1. WHERE Clause

The WHERE clause in Cypher is used to filter the results of a query. It allows you to specify conditions that nodes or relationships must meet to be included in the results.

Key Concepts

  • Allows filtering on node properties.
  • Can combine multiple conditions with AND and OR.
  • Supports comparison operators like =, >, <.

Example:


MATCH (n:Person)
WHERE n.age > 30 AND n.city = 'New York'
RETURN n
        

2. Filters

Filters in Cypher are expressions used to refine the results of a query. They can be applied within the WHERE clause or used in other contexts.

Common Filters:

  • EXISTS() - Checks if a property exists.
  • STARTS WITH - Checks if a string starts with a given substring.
  • IN - Checks if a value exists in a list.

Example:


MATCH (n:Movie)
WHERE n.title STARTS WITH 'The' AND n.genre IN ['Action', 'Adventure']
RETURN n
        

3. Parameters

Parameters in Cypher queries allow you to substitute values dynamically. This is useful for executing queries with different values without altering the query structure.

Setting Parameters:

  • Use WITH clause to pass parameters.
  • Utilize $parameterName syntax in the query.

Example:


WITH {nameParam} AS name
MATCH (n:Person)
WHERE n.name = name
RETURN n
        

4. Best Practices

When using WHERE clauses, filters, and parameters, consider the following best practices:

  • Use parameters instead of hardcoding values to enhance security and performance.
  • Combine conditions logically to avoid overly complex queries.
  • Utilize indexes on properties used in the WHERE clause to speed up queries.
Note: Always validate and sanitize parameter values to prevent injection attacks.

5. FAQ

What is the difference between WHERE and FILTER?

WHERE is used to filter nodes/relationships in the main query, while FILTER is used to refine results after the initial match, mainly in conjunction with WITH.

Can I use multiple conditions in a WHERE clause?

Yes, you can combine multiple conditions using AND and OR operators.

How do parameters improve performance?

They allow the database to cache query plans and optimize execution, leading to improved performance when executing similar queries multiple times.