OPTIONAL MATCH¶
The OPTIONAL MATCH
clause is used to search for the pattern described in it. OPTIONAL MATCH
matches patterns against your graph database, just like MATCH
does. The difference is that if no matches are found, OPTIONAL MATCH
will use a null for missing parts of the pattern.
OpenCypher Compatibility¶
This topic applies to the openCypher syntax in nGQL only.
Example¶
The example of the use of OPTIONAL MATCH
in the MATCH
statement is as follows:
nebula> MATCH (m)-[]->(n) WHERE id(m)=="player100" \
OPTIONAL MATCH (n)-[]->(l) WHERE id(n)=="player125" \
RETURN id(m),id(n),id(l);
+-------------+-------------+-------------+
| id(m) | id(n) | id(l) |
+-------------+-------------+-------------+
| "player100" | "team204" | __NULL__ |
| "player100" | "player101" | __NULL__ |
| "player100" | "player125" | "team204" |
| "player100" | "player125" | "player100" |
+-------------+-------------+-------------+
Using multiple MATCH
instead of OPTIONAL MATCH
returns rows that match the pattern exactly. The example is as follows:
nebula> MATCH (m)-[]->(n) WHERE id(m)=="player100" \
MATCH (n)-[]->(l) WHERE id(n)=="player125" \
RETURN id(m),id(n),id(l);
+-------------+-------------+-------------+
| id(m) | id(n) | id(l) |
+-------------+-------------+-------------+
| "player100" | "player125" | "team204" |
| "player100" | "player125" | "player100" |
+-------------+-------------+-------------+
Last update:
February 1, 2023