介绍
该MATCH子句允许您指定 Neo4j 将在数据库中搜索的模式。这是将数据放入当前绑定集的主要方式。有关如何MATCH使用 查找模式(包括量化路径模式、量化关系和最短路径)的更多信息,请参阅模式部分。
MATCHWHERE通常与向模式添加限制或谓词的部分相结合MATCH,使其更加具体。谓词是模式描述的一部分,不应被视为仅在匹配完成后应用的过滤器。 这意味着应始终将其与它所属的子句WHERE放在一起。MATCH
MATCH可以出现在查询的开头或之后,可能在之后WITH。如果它是第一个子句,则尚未绑定任何内容,Neo4j 将设计搜索以查找与子句和任何WHERE部分中指定的任何相关谓词匹配的结果。这可能涉及数据库扫描、具有特定标签的节点搜索或索引搜索以查找模式匹配的起点。此搜索找到的节点和关系可用作绑定模式元素,可用于路径的模式匹配。它们还可以用于任何后续MATCH子句中,其中 Neo4j 将使用已知元素,并从那里查找进一步的未知元素。
Cypher®是声明式的,因此查询本身通常不指定用于执行搜索的算法。Neo4j 将自动找出查找起始节点和匹配模式的最佳方法。WHERE部分中的谓词可以在模式匹配之前、模式匹配期间或找到匹配项之后进行评估。但是,在某些情况下,您可以影响查询编译器做出的决定。在创建、显示和删除索引中了解有关索引的更多信息,在Planner 提示和 USING 关键字中了解有关指定提示以强制 Neo4j 以特定方式解决查询的更多信息。
示例图
下图用于以下示例:

要重新创建图表,请针对空的 Neo4j 数据库运行以下查询:
CREATE
(charlie:Person {name: 'Charlie Sheen'}),
(martin:Person {name: 'Martin Sheen'}),
(michael:Person {name: 'Michael Douglas'}),
(oliver:Person {name: 'Oliver Stone'}),
(rob:Person {name: 'Rob Reiner'}),
(wallStreet:Movie {title: 'Wall Street'}),
(charlie)-[:ACTED_IN {role: 'Bud Fox'}]->(wallStreet),
(martin)-[:ACTED_IN {role: 'Carl Fox'}]->(wallStreet),
(michael)-[:ACTED_IN {role: 'Gordon Gekko'}]->(wallStreet),
(oliver)-[:DIRECTED]->(wallStreet),
(thePresident:Movie {title: 'The American President'}),
(martin)-[:ACTED_IN {role: 'A.J. MacInerney'}]->(thePresident),
(michael)-[:ACTED_IN {role: 'President Andrew Shepherd'}]->(thePresident),
(rob)-[:DIRECTED]->(thePresident),
(martin)-[:FATHER_OF]->(charlie)
基本节点查找
获取所有节点
通过指定具有单个节点且没有标签的模式,将返回图中的所有节点。
MATCH (n)
RETURN n
返回数据库中的所有节点。
| n |
|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

最低0.47元/天 解锁文章
3638

被折叠的 条评论
为什么被折叠?



