【neo4j】简易使用说明

一、数据库简介

Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

二、NEO4j的基本要素

1、实体节点

实体节点有标签,其相当于关系型数据库中表名的概念,换句话说就是对实体的归类。例如:实体A,标签为person,则可知该实体的类别为person。当然,neo4j支持实体类型多标签,因此,实体A的标签可以是多个,比如既有person又有thing的标签等等。同时,neo4j支持实体中添加属性。其中,每个实体的属性都是该实体的特有属性,实体间的属性的名称与取值可相同可不同。定位一个实体节点需要知道代表其唯一性的内容,具体请看相关语句。

2、关系

关系一定是基于两个节点而产生,同时存在单方向。在关系上同样存在标签,标签是对关系的归类,同时和实体节点一样,关系的标签可以是单个也可以多个。另外,关系中也可以有属性,每个关系的属性可以一致也可不一致。定位一个关系则需要知道代表其唯一性的内容,具体请看相关语句。

三、相关语句

1、创建

a)       创建一个带属性的节点

Create (n:Person{name=”JackyMa”}) return n

  • n 是变量,用来代指我们创建的新的节点,在以后的查询中,变量很有用。
  • 在neo4j中标签区分大小写,person和Person是两个不用类别的标签

b)      在现有的两个节点上创建一个新关系

Match(n) where id(n)=5 return n;

Match(m) where id(m) =6 return m;

Create (n)-[r:Related]->(m) return *

  • 如果不match,直接执行create语句则会新生成节点与关系

c)       在新的节点上创建一个新的关系

Create (n:Person{name:”PonnyMa”})-[r:Create]->(m:Company{name:”Tencent”}) return *

d)      在一个新的、一个旧的节点上创建一个新的关系

Match(n) where id(n)=1 return n;

Create (n:Person{name:”Pony”})-[r:related]->(n) return *

2、修改

a)       修改已经存在的节点的属性

MATCH (n:Person { name: 'PonnyMa' })

SET n.name= ' ponnyMa'

b) 修改已经存在的节点的标签

Match (n) where id(n)=3411 return n REMOVE n:Person SET n:PERSON

c) 修改已经存在的节点间的关系标签

MATCH (n)-[r]->(m) where id(n)=3411 and id(m)=3412 delete r

MATCH (n) where id(n)=3411 match (m) where id(m)=3412 CREATE (n)-[r1:FOLLOWS]->(m)

d) 修改静静存在节点间的关系的属性

MATCH (n)-[r]->(m) where id(n)=3411 and id(m)=3412 SET r.date='2020-1-1'

3、删除

a) 删除一个节点

Match (n) where id(n)=1545 return n

Delete n

b) 删除一个关系

MATCH (n)-[r]->(m) where id(n)=3411 and id(m)=3412 delete r

4、 查询

Match (n) where id(n)=1545 return n

Match(n:person) return * limit 25

Match(n:person) where n.name contains ‘黄’

四、开发实战中遇到的问题

1、在使用python操作py2neo数据库时,出现过The old parameter syntax `{param}` is no longer supported. Please use `$param` instead的问题

解决思路:检查python版本、neo4j版本以及py2neo版本的支持匹配度。

原文地址:https://www.cnblogs.com/nfuquan/p/13153390.html