Neo4j 笔记 1 基础概念
Node & Relation
图数据库的两个基本概念:
- 节点(Node)
- 关系(Relations, 也就是图的边)
在 neo4j 里面 节点用 () 表示,例如:
(a)一个叫 a 的节点( )一个匿名节点
neo4j 的Relation 用 -[ooxx]-> 来表示,例如:
-[r]->一个叫做r的关系(边)。(a)-[r]->(m)演员和电影 间 存在一个 叫做r的关系。-[:ACTED_IN]->一个ACTED_IN类型的关系。(a)-[:ACTED_IN]->(m)对 某些电影有ACTED_IN关系的演员(d)-[:DIRECTED]->(m)对某些电影有DIRECTED关系的导演。
Properties
节点和关系 都可以拥有 properties 。properties 是键值对,用来给节点和关系 添加一些属性信息。比如 演员j节点可能有一个name属性和一个born属性表示出生年份;电影节点 可能会包含 一个title 属性。
节点的属性表达方式如下:
(m {title:"The Matrix"}): 一个带有title属性的 电影-
(a {name:"Keanu Reeves",born:1964}): 一个带有名字和出生年份的演员
关系也可以带有属性
(a)-[:ACTED_IN {roles:["Neo"]}]->(m) 带有roles属性(一个字符串列表)ACTED_IN关系。
备注: 属性的类型可以是布尔型,数字或字符串,也可以是包含上面三种类型的列表。
Labels
Label 用来给 节点 标注类型,用以区分不同类型的节点。一个节点可以有一个或者多个Label,例如:
(a:Person)一个Person 类型的节点(a:Person {name:"Keanu Reeves"})一个带有属性的Person类型节点(a:Person)-[:ACTED_IN]->(m:Movie)一个Person类型的节点跟 一些Movie 类型的节点有ACTED_IN关系。