中间件速查手册
图数据库查询语言

Cypher 是什么?

用画图的方式写查询:(a)-[:KNOWS]->(b)

类比:用简笔画描述关系,而不是写 SQL

语法直觉

圆括号是节点,方括号是关系,箭头是方向。MATCH (u:User {id:1})-[:KNOWS]->(f) RETURN f.name 就是「找用户 1 的朋友的名字」。

常用写法

掌握这几个模式,日常查询就够用了。

  • 变长路径:-[:KNOWS*1..3]-> 表示 1 到 3 跳
  • 可选匹配:OPTIONAL MATCH,类似 LEFT JOIN
  • 聚合:count()、collect(),配合 WITH 分步处理
  • 写入:MERGE 是「有则匹配、无则创建」,做幂等导入很好用

性能提示

一定要给起点加标签和索引属性,否则会全图扫描。用 PROFILE 看执行计划,关注 AllNodesScan——看到它基本就是索引没建对。

它出现在这些中间件里

相关问题

相关概念