Apache AGE 是一个开源的图形数据库,它支持基于 SQL 的查询语言 Cypher。在 AGE 中,MATCH 子句用于查找图中的节点和边。MATCH 子句支持正向和反向的边,但如果要指定边的方向,则需要使用大于号(>)或小于号(<)来表示边的方向。
例如,考虑以下的图:
CREATE (:Person {name: 'Alice'})-[:FRIEND]->(:Person {name: 'Bob'})
CREATE (:Person {name: 'Bob'})-[:FRIEND]->(:Person {name: 'Charlie'})
要查询 Alice 有哪些朋友,可以使用以下的 MATCH 子句:
MATCH (:Person {name: 'Alice'})-[:FRIEND]->(friend:Person) RETURN friend.name
要查询 Charlie 有哪些朋友,可以使用以下的 MATCH 子句:
MATCH (friend:Person)-[:FRIEND]->(:Person {name: 'Charlie'}) RETURN friend.name
在上面的示例中,箭头的方向表示了边的方向。大于号(>)表示正向边,小于号(<)表示反向边。
此外,MATCH 子句还支持双向的边,使用双横线(--)表示。例如,要查询 Bob 的朋友和朋友的朋友,可以使用以下的 MATCH 子句:
MATCH (bob:Person {name: 'Bob'})-[:FRIEND]-(friend:Person)-[:FRIEND]-(fof:Person) RETURN fof.name
上面的 MATCH 子句中,双横线(--)表示了双向的边。查询结果将返回 Bob 的朋友的朋友的姓名。
总之,如果需要指定边的方向,在 MATCH 子句中使用大于号(>)或小于号(<),并使用双横线(--)表示双向的边。