【neo4j】简易使用说明

摘要:
1、 数据库Neo4j简介是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式、基于磁盘的Java持久性引擎,具有完整的事务特性,但它将结构化数据存储在网络上(从数学角度称为图),而不是存储在表中。Neo4j也可以看作是一个具有成熟数据库所有功能的高性能图形引擎。2、 NEO4j的基本元素1.实体节点实体节点有标签,这相当于关系数据库中表名的概念,换句话说

一、数据库简介

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版本的支持匹配度。

【neo4j】简易使用说明第1张

免责声明:文章转载自《【neo4j】简易使用说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Reactor 3 学习笔记(1)Qt下载地址下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

@PathVariable注解详解

实现思路 请求路径如:/person/list/101。使用正则将id为key,101为value填充到map中放到request域中。为目标方法形参设置参数时拿出request域中的值然后赋值。 实现原理 @PathVariable注解对应的解析器是PathVariableMethodArgumentResolver 根据HandlerMapping映射...

andoird软件开发之一个记录账号密码的APP--bmob后台

1.app功能:通过注册登录账户,拥有一个账户本,能够将平时自己容易的忘记的账户记录下来,并可以保持到云端,不需要担心数据丢失,只要登录账户,便可获取到自己的账户本。 2.实现的效果图,如下: 以下界面分别为注册界面、登录界面、提交账户内容界面、账户列表界面、长按删除账户信息、具体账户内容信息 3.实现的工程目录如下: 4.实现的具体过程: a.布局...

search(14)- elastic4s-统计范围:global, filter,post-filter bucket

聚合一般作用在query范围内。不带query的aggregation请求实际上是在match_all{}查询范围内进行统计的: GET /cartxns/_search { "aggs": { "all_colors": { "terms": {"field" : "color.keyword"} } } } }...

安卓(TableLayout)

1、特点 公共类TableLayout扩展LinearLayout容器不显示其行、列或单元格的边框线。每一行有零个或多个单元格;每个单元格可以包含一个视图对象该表的列数与包含最多单元格的行的列数相同。一个表可以保留空单元格。单元格可以跨列,就像在HTML中一样。 列的宽度由该列中单元格最宽的行定义。但是,TableLayout可以通过调用setColumn...

LabVIEW部分视觉函数中文解说

IMAQ Learn Pattern 2 VI在匹配阶段创建您要搜索的图案匹配的模板图像的描述,此描述的数据被附加到输入模板图像中。在匹配阶段,从模板图像中提取模板描述符并且用于从检查图像中搜索模板。 Image:是一个您要搜索模板图像的参考检查图像。 Learn Pattern Setup Data(学习模式设置数据):是一个字符串,包含从本控件或从高级...

ElasticSearch索引与搜索

在系列的第一篇文章中我们介绍了ElasticSearch的基本概念和操作,本文将继续介绍ElasticSearch查询和索引功能。 目录: 查询 精确查询 term查询 terms查询 range查询 全文查询 match查询 multi_match查询 script查询 组合查询 bool查询 dis_max查询 function_sc...