Neo4j - Selecting data with MATCH using Cypher
MATCH statement allows you to find data that matches a given criteria. You can use
MATCH to return the data or to perform some other operation on it.
MATCH statement is used to match a given criteria, but it doesn't actually return the data. To return any data from a
MATCH statement, we still need to use the
Retrieve a Node
Here's a simple example of using a
MATCH statement to retrieve a node:
WHERE clause works the same way as SQL's
WHERE clause, in that it allows you to narrow down the results by providing extra criteria.
However, you can achieve the same result without using a
WHERE clause. You can also search for a node by providing the same notation you used to create the node.
The following code provides the same results as the above statement:
Running either of the above queries will result in the following node being displayed:
You may have noticed that clicking on a node expands an outer circle separated into three sections — each representing a different option:
Clicking on the bottom section will expand the node's relationships:
You can also traverse relationships with the
MATCH statement. In fact, this is one of the things Neo4j is really good at.
For example, if we wanted to find out which artist released the album called Heavy as a Really Heavy Thing, we could use the following query:
This will return the following node:
You can see that the pattern we use in the
MATCH statement is almost self-explanatory. It matches all artists that released an album that had a name of Heavy as a Really Heavy Thing.
We use variables (i.e.
b) so that we can refer to them later in the query. We didn't provide any variables for the relationship, as we didn't need to refer to the relationship later in the query.
You might also notice that the first line uses the same pattern that we used to create the relationship in the first place. This highlights the simplicity of the Cypher language. We can use the same patterns in different contexts (i.e. to create data and to retrieve data).
Return all Nodes
You can return all nodes in the database simply by omitting any filtering details. Therefore, the following query will return all nodes in the database:
This results in all our nodes being returned:
You can also click on the Rows icon on the side to display the data in row format:
Be careful when returning all nodes. Doing this on a large database could have major performance implications. It's generally recommended to limit the results to avoid unintended issues.
See "Limit the Results" below.
Limit the Results
LIMIT to limit the number of records in the output. It's a good idea to use this when you're not sure how big the result set is going to be.
So we could simply append
LIMIT 5 to the previous statement to limit the output to 5 records: