Neo4j是一款原生的图数据库。
三个基本概念
- Node
一个node相当于一条数据库记录 - Relationships
标识node与node之间的关系 - Properties
以key-value的形式记录node的属性,相当于数据库记录的具体内容
1.Cypher 语句
一个声明式图形查询语言
1.1查询
- 查询语句可以紧接写/更新语句
MATCH (n {name: 'John'})-[:FRIEND]-(friend)
WITH n, count(friend) AS friendsCount
SET n.friendsCount = friendsCount
RETURN n.friendsCount
- 查询语句是懒加载模式,直到你需要用到它的结果时,如果执行的查询更新语句,那么在更新执行之前会先执行查询获取结果集.
- 一个单纯的查询语句必须要有一个语句
- 查询更新语句可以不必有语句,虽然它可以支持语句
- 如果返回的查询结果为一个已删除的Node,则支持的结果集指针不在有效,在该Node上的操作都是无效的。
1.2事务
- 任何都将在事务中运行,要么成功,要么失败。
- 如果当前更新查询语句上下文没有事务,则创建一个,在完成查询更新的时候提交事务。
- 如果已存在一个事务,则加入到当前事务,直到事务提交才持久化到数据库。
网友评论