MATCH
MATCH子句式是GQL最基础的子句,几乎所有查询都是通过 MATCH展开。
MATCH子句用于指定在图中搜索的匹配模式,用来匹配满足一定条件的点或者路径。
基本用法
点查询
查询所有点
MATCH (n)
RETURN n
查询特定标签的点
MATCH (n:Person)
RETURN n
通过属性匹配点
MATCH (n:Person{name:'Michael Redgrave'})
RETURN n.birthyear
返回结果
[{"n.birthyear":1908}]
通过过滤条件匹配点
MATCH (n:Person WHERE n.birthyear > 1910)
RETURN n.name LIMIT 2
返回结果
[{"n.name":"Christopher Nolan"},{"n.name":"Corin Redgrave"}]
边查询
出边匹配
MATCH (n:Person WHERE n.birthyear = 1970)-[e]->(m)
RETURN n.name, label(e), m.name
返回结果
[{"label(e)":"BORN_IN","m.name":"London","n.name":"Christopher Nolan"},{"label(e)":"DIRECTED","m.name":null,"n.name":"Christopher Nolan"}]
入边匹配
MATCH (n:Person WHERE n.birthyear = 1939)<-[e]-(m)
RETURN n.name, label(e), m.name
返回结果
[{"label(e)":"HAS_CHILD","m.name":"Rachel Kempson","n.name":"Corin Redgrave"},{"label(e)":"HAS_CHILD","m.name":"Michael Redgrave","n.name":"Corin Redgrave"}]
带过滤条件的边匹配
MATCH (n:Person)-[e:BORN_IN WHERE e.weight > 20]->(m)
RETURN n.name, e.weight, m.name
返回结果
[{"e.weight":20.549999237060547,"m.name":"New York","n.name":"John Williams"},{"e.weight":20.6200008392334,"m.name":"New York","n.name":"Lindsay Lohan"}]
路径匹配
不定跳查询
MATCH (n:Person)-[e]->{2,3}(m:Person)
RETURN m.name LIMIT 2
返回结果
[{"m.name":"Liam Neeson"},{"m.name":"Natasha Richardson"}]