Neo4j 是一个开源的 NoSQL 图数据库(Graph Database),专门用于存储、查询和处理以“关系”为核心的数据。它基于图论(Graph Theory) 构建,核心思想是用节点(Node)、关系(Relationship) 和属性(Property) 来表示和存储数据,非常适合处理复杂的关系网络场景。
下面从几个关键方面介绍 Neo4j:
Neo4j 使用属性图模型(Property Graph Model),主要包含:
节点(Node)
表示实体,如:人、商品、公司、订单等
✅ 可以有零个或多个标签(Label)
关系(Relationship)
表示节点之间的关联,如:认识、购买、属于、合作
✅ 必须有方向(单向或双向通过反向关系实现)
✅ 也可以带属性
属性(Property)
键值对形式,附加在节点或关系上
例如:name: "张三"、age: 30
标签(Label)
对节点进行分类,如:Person、Product、Company
(张三:Person {name:"张三", age:30})
-[:FRIEND {since:2020}]->
(李四:Person {name:"李四", age:28})
Neo4j 使用 Cypher 查询语言,语法直观、接近图结构。
MATCH (p:Person)-[:FRIEND]->(friend)
WHERE p.name = '张三'
RETURN friend.name
含义:
查找“张三”的所有朋友,并返回他们的名字
Neo4j 最适合关系复杂、关联密集的数据场景:
| 对比项 | Neo4j | MySQL / PostgreSQL | MongoDB |
|---|---|---|---|
| 数据模型 | 图 | 表 | 文档 |
| 关系处理 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| 多跳查询 | 非常快 | 慢 | 慢 |
| 灵活性 | 高 | 中 | 高 |
| 事务支持 | 有 | 有 | 有限 |
Neo4j 是一个以“关系”为核心的图数据库,擅长处理复杂关联数据,是构建知识图谱和关系分析系统的首选数据库之一。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。