Neo4j 的数据模型是基于图形结构的,主要由节点(Nodes)和关系(Relationships)组成。这种图形模型是一种直观而灵活的方式,用于表示实体之间的关系。以下是 Neo4j 数据模型的主要元素:

1. 节点(Nodes)

在 Neo4j 中,节点是图形数据的基本单元,用于表示实体。每个节点都可以包含一组属性(键值对),这些属性用于描述该实体。节点可以用圆圈表示,并可以通过标签来标识节点所属的类别。

示例创建节点的 Cypher 查询:
CREATE (person:Person {name: 'John', age: 30})

在这个示例中,创建了一个标签为 "Person" 的节点,该节点包含一个名为 "John"、年龄为 30 的人的属性。

2. 关系(Relationships)

关系用于连接节点,表示实体之间的关系。关系通常也具有类型和属性。关系可以有方向,表示关系的起点和终点。

示例创建关系的 Cypher 查询:
MATCH (john:Person), (jane:Person)
WHERE john.name = 'John' AND jane.name = 'Jane'
CREATE (john)-[:FRIEND]->(jane)

在这个示例中,创建了一个类型为 "FRIEND" 的关系,表示 "John" 和 "Jane" 之间的友谊关系。

3. 属性(Properties)

节点和关系都可以包含属性,属性是键值对的集合,用于描述实体的特征。例如,在上述示例中,节点 "Person" 的属性包括 "name" 和 "age"。

4. 标签(Labels)

标签是用于给节点分组的标识。节点可以带有一个或多个标签,以表示它们属于哪个类别。标签有助于对节点进行分类和查询。

示例给节点添加标签的 Cypher 查询:
MATCH (person:Person)
WHERE person.name = 'John'
SET person:Friend

在这个示例中,给具有 "name" 属性为 "John" 的节点添加了一个 "Friend" 标签。

Neo4j 的图形数据模型的灵活性使得它适用于各种场景,特别是需要强调实体之间复杂关系的应用程序,如社交网络、推荐系统、网络拓扑和知识图谱。


转载请注明出处:http://www.zyzy.cn/article/detail/9274/Neo4j