cypher学习1--核心概念
Introduction - Cypher Manual (neo4j.com)
介绍
Cypher 是 Neo4j 的声明式查询语言,允许用户释放属性图数据库的全部潜力。
编写查询实际上就像在图形中的数据中绘制模式一样。 换言之,节点及其关系等实体在视觉上内置于查询中。
这使得 Cypher 成为一种高度直观的读写语言。(nodes)-[:CONNECT_TO]→(otherNodes)
查询
核心概念
Neo4j 图形数据库由三个核心实体组成:节点、关系和路径。 Cypher® 查询的构造是为了在图中匹配或创建这些实体。 因此,基本了解图形数据库中的节点、关系和路径对于构造 Cypher 查询至关重要。
以下示例使用 MATCH 和 RETURN 子句来查找并返回所需的图形模式。
节点
Neo4j 图形数据库中的数据实体称为节点。 节点在 Cypher 中使用括号引用。()
MATCH (n:Person {name:'Anna'})
RETURN n.born AS birthYear
-标签 :Person
-属性 {name:'Anna'}
-变量 n 允许在后续子句中引用指定的节点
关系
图中的节点可以通过关系连接。 关系必须具有起始节点、结束节点和一种类型。 关系在Cypher中用箭头(例如)表示关系的方向。-->
MATCH (:Person {name: 'Anna'})-[r:KNOWS WHERE r.since < 2020]->(friend:Person)
RETURN count(r) As numberOfFriends
虽然节点可以有多个标签,但关系只能有一种类型。
路径
图中的路径由连接的节点和关系组成。 探索这些路径是Cypher的核心。
shortestPath() 函数来查找两个节点之间的最短路径
MATCH p=shortestPath((:Person {name: 'Anna'})-[:KNOWS*1..10]-(:Person {nationality: 'Canadian'}))
p 是一个变量,用来代表整个路径。
shortestPath() 函数表示我们要找到最短路径。
在括号中的模式 (:Person {name: 'Anna'})-[:KNOWS*1..10]-(:Person {nationality: 'Canadian'}) 定义了路径的模式:
(:Person {name: 'Anna'}):这是路径的起始节点,其标签为 Person,属性 name 为 'Anna'。[:KNOWS*1..10]:这是关系的模式,表示我们可以沿着任意数量的 KNOWS 关系移动,最小为 1,最大为 10。(:Person {nationality: 'Canadian'}):这是路径的结束节点,其标签为 Person,属性 nationality 为 'Canadian'。RETURN p:这是返回语句,指示将找到的路径返回给用户
这个查询将返回从姓名为 'Anna' 的人开始,到国籍为 'Canadian' 的人之间的最短路径。
neo4j与cypher相关信息
Neo4j 由两个版本组成:商业企业版和社区版, cypher使用在一些关键方面有所不同

Neo4j 的全新安装包括两个数据库:
-
system- 上述系统数据库,包含有关DBMS和安全配置的元数据。 -
neo4j- 默认数据库,使用 config 选项命名。dbms.default_database=neo4j
Transaction
所有 Cypher 查询都在事务中运行。 通过更新查询完成的修改由事务保存在内存中,直到提交为止,此时更改将保留到磁盘上,并对其他事务可见。
简言之,更新查询总是要么完全成功,要么根本不成功。(因此,进行大量更新的查询会使用大量内存,因为事务在内存中保存更改。)
Neo4j 中的事务可以是显式的,也可以是隐式的。 driver调用不同API


浙公网安备 33010602011771号