写点什么

neo4j 基本概念与入门实例

用户头像
escray
关注
发布于: 1 小时前
neo4j 基本概念与入门实例

neo4j 学习笔记


节点(Node)是图数据库中的一个基本元素,用以表示一个实体记录,就像关系数据库中的一条记录一样。在 Neo4j 中节点可以包含多个属性(Property)和多个标签(Label)。


关系(Relationship)同样是图数据库中的基本元素。当数据库中已经存在节点后,需要将节点连接起来构成图。关系就是用来连接两个节点,关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系只能有一个类型(Type),


关系必须有开始节点(Start node)和结束节点(End node),两头都不能为空。


节点可以被关系串联或并联起来,由于关系可以是有方向的,所以我们可以在由节点、关系组成的图中进行遍历操作。


在图的遍历操作中我们可以指定关系遍历的方向或者指定为无方向,因此在创建关系时不必为两个节点创建相互指向的关系,而是在遍历时不指定遍历方向即可。这样在遍历时不指定方向即可。


特别注意一个节点可以存在指向自己的关系。


当使用节点和关系创建了一个图后,在此图中任意两个节点间都是可能存在路径的。图中任意两节点都存在由节点和关系组成的路径,路径也有长度的概念,也就是路径中关系的条数。


当然也可以说单独一个节点就可以组成长度为 0 的路径,如果是两个简单的节点,中间只存在一条关系,那这条路径的长度就是 1。


遍历 Traversal 一张图就是按照一定的规则,根据它们之间的关系,依次访问所有相关联的节点的操作。


按照官方的入门实例敲了一遍代码,虽然不太熟练,但是感觉还好


// 创建一个节点(电影)CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})// 创建人物CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})...// 创建关系CREATE(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),(LillyW)-[:DIRECTED]->(TheMatrix),(LanaW)-[:DIRECTED]->(TheMatrix),(JoelS)-[:PRODUCED]->(TheMatrix)
neo4j$ match (tom {name:"Tom Hanks"}) return tomneo4j$ match (cloudAtlas {title: "Cloud Atlas"}) return cloudAtlasneo4j$ match (people:Person) return people.name Limit 10neo4j$ match (nineties:Movie) where nineties.released > 1990 and nineties.released < 2000 return nineties.title limit 10
neo4j$ match (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) return tom, tomHanksMovies
neo4j$ match (cloudAtlas {title: "Cloud Atlas"})<-[:DIRECTED]-(directors) return directors.name, directors.born
neo4j$ match (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) return coActors.name
// 清除电影数据库neo4j$ MATCH (n) DETACH DELETE n
// 确认neo4j$ MATCH (n) RETURN n
复制代码


发布于: 1 小时前阅读数: 2
用户头像

escray

关注

文案小能手 2017.11.19 加入

前沿关键技术与基础理论研究师

评论

发布
暂无评论
neo4j 基本概念与入门实例