【图形数据库】核心概念

节点:

从根本上说,Neo4j 图形数据库由三个核心实体组成:节点、关系和路径。 Cypher® 查询的构造是为了在图中匹配或创建这些实体。 因此,基本了解图形数据库中的节点、关系和路径对于构造 Cypher 查询至关重要。

MATCH (n:Person {name:'Anna'})
RETURN n.born AS birthYear

标签。 标签类似于标签,用于查询数据库中的特定节点。 一个节点可以有多个标签,例如 和 .PersonPersonActor

设置为 的属性。 属性在大括号内定义,用于为节点提供特定信息,这些信息也可以查询并进一步提高精确定位数据的能力。nameAnna{}

变量 . 变量允许在后续子句中引用指定的节点。n

在此示例中,第一个子句查找图中属性设置为 的所有节点,并将它们绑定到变量 。 然后,该变量将传递给后续子句,该子句返回属于同一节点的不同属性 () 的值。

关系:

图中的节点可以通过关系连接。 关系必须具有起始节点、结束节点和一种类型。 关系在Cypher中用箭头(例如)表示关系的方向。-->

MATCH (:Person {name: 'Anna'})-[r:KNOWS WHERE r.since < 2020]->(friend:Person)
RETURN count(r) As numberOfFriends

与节点不同,关系模式中的信息必须用方括号括起来。 上面的查询示例匹配类型和属性设置为小于 的关系。 该查询还要求关系从名为的节点转到任何其他节点,称为 。 count() 函数在子句中用于计算由前一句中变量绑定的所有关系(即从以前开始认识多少个朋友)。

路径:

图中的路径由连接的节点和关系组成。 探索这些路径是Cypher的核心。

MATCH (n:Person {name: 'Anna'})-[:KNOWS]-{1,5}(friend:Person WHERE n.born < friend.born)
RETURN DISTINCT friend.name AS olderConnections

此示例使用量化关系来查找跳点之前的所有路径,仅遍历从起始节点到其他较旧节点(由 WHERE 子句定义)的类型关系。 DISTINCT 运算符用于确保子句仅返回唯一节点。

也可以为路径分配变量。 例如,下面的查询绑定了一个完整的路径模式,该模式匹配从图中另一个节点到跳跃的最短路径,并将属性设置为 。 在这种情况下,该子句返回两个节点之间的完整路径。

MATCH p=shortestPath((:Person {name: 'Anna'})-[:KNOWS*1..10]-(:Person {nationality: 'Canadian'}))
RETURN p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值