neo4j 基本概念

核心概念

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

节点

Neo4j 图形数据库中的数据实体称为节点。在 Cypher 中,节点使用括号来引用()

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

在上面的例子中,节点包括以下内容:

  • 标签。Person 标签类似于标记,用于在数据库中查询特定节点。一个节点可能有多个标签,例如PersonActor

  • name 设置为 的属性Anna。属性在花括号内定义,{}用于向节点提供特定信息,这些信息也可以进行查询,从而进一步提高精确定位数据的能力。

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

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

关系

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

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

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

请注意,虽然节点可以有多个标签,但关系只能有一种类型。

路径

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

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

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

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

MATCH p=shortestPath((:Person {name: 'Anna'})-[:KNOWS*1..10]-(:Person {nationality: 'Canadian'}))
RETURN p
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Neo4j是一种高性能的图数据库,它以图的形式存储和处理数据。以下是Neo4j数据库基本概念和组件: 1. 图(Graph):Neo4j使用图来表示数据模型,图由节点(Nodes)和关系(Relationships)组成。节点表示实体,关系表示节点之间的连接。 2. 节点(Node):节点是图中的基本单元,用于表示实体。每个节点可以有多个属性(Properties),属性用于描述节点的特征。 3. 关系(Relationship):关系用于连接节点,表示节点之间的关联关系。关系可以有方向和类型,并且可以具有属性。 4. 属性(Properties):属性是节点和关系的特征描述,以键值对的形式存储。属性可以用于存储节点和关系的各种信息。 5. 标签(Label):标签用于对节点进行分类和组织。一个节点可以有多个标签,标签可以用于快速检索和过滤节点。 6. 查询语言(Cypher):Cypher是Neo4j的查询语言,它类似于SQL,但专门用于图数据库。通过Cypher语言,可以对图数据库进行查询、插入、更新和删除操作。 7. 索引(Index):索引用于加速节点和关系的查找。Neo4j支持多种类型的索引,包括唯一索引、全文索引等。 8. 事务(Transaction):事务用于保证数据的一致性和完整性。在Neo4j中,可以通过事务来执行一系列的数据库操作,并确保这些操作要么全部成功,要么全部失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北京橙溪科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值