一、Neo4j中的基本概念:
1. 节点:图数据库中的基本元素,表示一个实体记录。节点可以包含多标签、多属性。
2. 关系:数据库中的基本元素,当数据库中存在节点后,用来连接节点构成图。包含多个属性但是只有一个类型。必须有开始节点和结束节点。
3. 属性:由键值对构成,属性值可以是基本的数据类型或由基本数据类型组成的数组。
4. 路径:使用节点和关系创建一个图后,此图中任意两个节点间都可能存在路径。
5. 遍历:遍历一张图就是按照一定的规则,根据它们之间的关系,依次访问所有相关联的节点的操作。
二、官方入门实例
1. 创建图数据:
//创建电影节点
CREATE (TheMatrix:Movie{title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
//创建人物节点
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})
CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})
CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})
CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})
CREATE (JoelS:Person {name:'Joel Silver', born:1952})
//创建演员、导演关系
CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),(LillyW)-[:DIRECTED]->(TheMatrix),(LanaW)-[:DIRECTED]->(TheMatrix),(JoelS)-[:PRODUCED]->(TheMatrix)
关系创建完成
2. 检索节点:
MATCH (hugo {name: "Hugo Weaving"}) RETURN hugo
//条件查询
MATCH (nineties:Movie) WHERE nineties.released > 1990 AND nineties.released < 2000 RETURN nineties.title
3. 导入CSV文件数据:
3.1 使用Load CSV导入到Neo4j:将指令路径下的CSV文件读取出来,其中file-url就是文件的地址,可以是本地文件也可以是网址
LOAD CSV FROM 'file:///ball_data.csv' AS line RETURN line
注意Mac的话,file:///直接就是
file:/Users/yangzhuo/Documents/study/neo4j/neo4j-community-3.3.1/import/
可以把,数据文件直接放在import文件夹中
3.2 将csv文件保存到数据库:LOAD CSV FROM 'file:///ball_data.csv' AS line CREATE (:Person{name:line[0],score1:line[1], score2:line[2]})
查看数据库中是否有数据:
MATCH (n:Person) RETURN n
3.3 导入CSV时附上表头
LOAD CSV WITH HEADERS FROM 'file:///ball_data.csv' AS line CREATE (:Track{TrackId: line.Id, Name: line.Track, Length: line.Length})
MATCH (n:Track) RETURN n
3.4 导入CSV大文件
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///ball_data.csv' AS line CREATE (:Track{TrackId: line.Id, Name: line.Track, Length: line.Length})
MATCH (n:Track) RETURN n