介绍
- Cypher是一种用于图数据库的查询语言,最初由Neo4j开发。
- 在Cypher中,用户可以使用模式匹配和路径遍历等功能来检索有关节点和关系之间连接性的信息。
主要特点
- 模式匹配:Cypher允许用户使用类似于正则表达式的模式来搜索符合特定模式的节点和关系。
- 路径遍历:用户可以通过指定起始节点和结束节点以及期望的路径方向来查找连接这两个节点的路径。
- 节点和关系属性:Cypher支持对节点和关系属性进行过滤、排序和聚合操作。
- 支持事务:用户可以通过Cypher执行事务性操作,确保数据一致性。
示例
// 查询所有名称为Alice的人物及其朋友
MATCH (p:Person {name: 'Alice'})-[:FRIEND]->(friend)
RETURN p, friend
// 查找Bob到Cathy之间最短路径上所有人的姓名
MATCH path = shortestPath((p1:Person {name: 'Bob'})-[*]-(p2:Person {name: 'Cathy'}))
RETURN nodes(path).name
// 查找至少有3个共同朋友的人物对
MATCH (p1:Person)-[:FRIEND]->(friend)-[:FRIEND]->(p2:Person)
WITH p1, p2, COUNT(friend) AS numFriends
WHERE numFriends >= 3
RETURN p1, p2