示例场景:创建一个小型社交网络
1. 创建节点和关系(一次性执行)
cypher
// 创建3个人物节点
CREATE (alice:Person {name: 'Alice', age: 28})
CREATE (bob:Person {name: 'Bob', age: 30})
CREATE (charlie:Person {name: 'Charlie', age: 35})
// 创建公司节点
CREATE (google:Company {name: 'Google', founded: 1998})
CREATE (microsoft:Company {name: 'Microsoft', founded: 1975})
// 建立关系
// 人物关系
CREATE (alice)-[:KNOWS {since: 2015}]->(bob)
CREATE (bob)-[:KNOWS {since: 2016}]->(charlie)
CREATE (alice)-[:KNOWS {since: 2018}]->(charlie)
// 工作关系
CREATE (alice)-[:WORKS_AT {since: 2020}]->(google)
CREATE (bob)-[:WORKS_AT {since: 2018}]->(microsoft)
CREATE (charlie)-[:WORKS_AT {since: 2010}]->(microsoft)
2. 查询关系图
cypher
// 查询所有人物及其关系
MATCH (p:Person)-[r]-(other)
RETURN p, r, other

3. 可视化查询结果
执行上述查询后,Neo4j浏览器会自动将结果可视化为图形,你会看到:
- 3个Person节点(Alice、Bob、Charlie)
- 它们之间的KNOWS关系
- 每个人与公司的WORKS_AT关系
4. 更简单的分步创建方式
如果你想要一步步创建:
cypher
// 第一步:只创建人物
CREATE (alice:Person {name: 'Alice'})
CREATE (bob:Person {name: 'Bob'})
CREATE (charlie:Person {name: 'Charlie'})
// 第二步:创建人物之间的关系
MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
CREATE (a)-[:KNOWS]->(b)
MATCH (a:Person {name: 'Alice'}), (c:Person {name: 'Charlie'})
CREATE (a)-[:KNOWS]->(c)
// 第三步:创建公司和工作关系
CREATE (google:Company {name: 'Google'})
MATCH (a:Person {name: 'Alice'}), (g:Company {name: 'Google'})
CREATE (a)-[:WORKS_AT]->(g)
提示
-
在Neo4j浏览器中:
- 节点标签(如
:Person)会显示为不同颜色 - 关系类型(如
[:KNOWS])会显示为连接线 - 属性(如
{name: 'Alice'})可以通过鼠标悬停查看
- 节点标签(如
-
你可以点击节点展开或折叠相关关系
-
要清空数据库重新开始(仅用于开发环境):
cypher
MATCH (n)
DETACH DELETE n
这个简单示例展示了Neo4j的核心概念:带标签的节点、带类型的关系以及属性。你可以通过修改这些示例来创建自己的图形数据模型。