Neo4j_Cypher

1、Cypher增删改查

① 增
创建节点:
create (n:node_type{name:’Regan’,age:24}) return n;
node_type:该节点所属标签名字
创建关系:
start regan=node:test(name=’Regan’), lucy=node:test(name=’Lucy’) create (regan)-[r:friend]->(lucy) return r
注意:需要在name属性上创建索引才能执行以上命令
创建不存在的图形实体,应该使用创建唯一的(create unique)Cypher命令:
start regan=node:test(name=’Regan’), lucy=node:test(name=’Lucy’) create unique (regan)-[r:friend]->(lucy) return r

② 删
删除节点:
MATCH (n:test) delete n
删除test标签下所有的节点
删除关系:
MATCH (n:test)-[r:friend]->() delete r
删除test标签下所有节点的friend关系

③ 改
更新节点:
match (regan:node_type) where regan.name=’Regan’ set regan.age=25;

④ 查
使用索引查找起始节点:
start regan=node:test(name=’regan’) return regan;
使用模式索引查找起始节点:
match (n:node_type) where n.name=’Regan’return n;

2、Cypher的基本句法

这里写图片描述
类似地,节点也可以匿名。要使节点匿名,使用空的圆括号()指定节点。

这里写图片描述
在Cypher查询的match语句中可以不使用圆括号指定命名节点,例如start user=node(1)match user-[:HAS_SEEN]->movie return movie。在复杂的查询中,如果可能,也可以去掉圆括号,以简化查询且使之可读。匿名节点必须有圆括号。查找用户1的朋友看过的所有电影:

这里写图片描述
John和他的的朋友都看过的所有电影节点:

这里写图片描述
作为结果的节点必须匹配所有逗号隔开的模式,相当于一个“并”(AND)语句。
John没有看过,但是他的朋友看过的电影:

这里写图片描述

这里写图片描述
对于字符串属性,除标准的等于号(=)比较外,还可以使用正则表达式过滤掉指定的值。

这里写图片描述
Cypher中的正则表达式比较符是等于波浪号(=~)。正则表达式放在两个正斜杠之间(/)。表达式本身遵从标准的Java正则表达式句法
要过滤具有给定属性的节点而不管属性的值(例如,具有Twitter账号的所有朋友), 则需要使用Cypher的has函数。

这里写图片描述
返回属性

这里写图片描述
返回关系

这里写图片描述
返回路径

这里写图片描述
聚合

这里写图片描述
除count函数外,Cypher支持SQL的所有常用的聚合函数:SUM的数值求和、 AVG计算平均值到MAX和MIN寻找数值属性中的最大值和最小值。要求John 所有朋友的平均年龄,可以使用以下查询:

这里写图片描述
函数
Cypher函数用于访问图形实体的内部属性,例如节点和关系的编号和节点标签(类型)。在计数的例子中,已经看到了用ID(node)函数获取指定节点的内部编号。另外,也可以使用TYPE(relationship)函数查找一个关系的类型。

这里写图片描述
John希望在Facebook上介绍给Kate。他不认识Kate,但是想找出谁是Kate的朋友, 朋友的朋友认识她,直至第三层的朋友。因为他需要使用Facebook,所以他仅仅对 Facebook上的人(即有Facebook Id属性设置的人)感兴趣。

这里写图片描述
·HAS(graphEntity.propertyName)——如果一个节点或关系具有给定名字的属性存在, 则返回true。
·NODES(path)——把一个路径转换成一个可迭代的节点集。
·ALL(x in collection where predicate(x))——如果collection中的每一个单个元素匹 配了给定的predicate,则返回true。
With语句的管道功能

这里写图片描述

### 回答1: neo4j_community_3.5.30是一个优秀的图数据库管理系统,其主要特点是快速、灵活和可扩展。它是一种高度可伸缩的数据库解决方案,适用于复杂的数据关系和大型数据量的处理。 neo4j_community_3.5.30的核心功能是图形数据库技术,它将数据以节点和边的形式表示。这种基于图的数据存储方式使得数据之间的关系变得更加清晰明了,适用于类似社交网络、知识图谱等需要处理复杂数据关系的场景。 在应用方面,neo4j_community_3.5.30具有广泛的适用性,包括推荐系统、社交网络、网络安全、物联网、生物医学等领域。同时,它也可以与其他数据存储系统集成,如关系型数据库、NoSQL数据库等。 除此之外,neo4j_community_3.5.30也具有一系列高级特性,如事务性操作、数据备份和恢复等。同时,它提供了良好的开发人员支持,包括多种编程语言的接口和一系列开发工具。这些特点都使得neo4j_community_3.5.30成为一种功能强大、易于使用、灵活可扩展的图数据库管理系统,有着很高的市场份额和用户口碑。 ### 回答2: neo4j_community_3.5.30是一款基于图数据库的开源数据库软件。它支持通过节点和边的方式来组织和处理数据,比传统的关系型数据库更为灵活。这个版本的neo4j_community_3.5.30是该软件的一个稳定版本,它修复了之前版本中的一些漏洞并提高了软件的性能和稳定性。 在使用neo4j_community_3.5.30时,用户可以通过Cypher语言对图数据库进行查询和操作,它支持多种操作,包括节点和关系的创建、修改和删除、索引和查询语句等。另外,neo4j_community_3.5.30也支持通过HTTP API进行数据交互,尤其适合需要处理大规模数据和需要高并发性能的应用场景。 总的来说,neo4j_community_3.5.30是一款强大且易用的图数据库软件,它提供了丰富的功能和灵活的数据结构设计,适合各种大小的企业和组织使用。 ### 回答3: neo4j_community_3.5.30是一个图数据库管理系统软件。它是neo4j公司开发的一个开源软件,可用于构建、管理和查询图形数据库。该软件具有内置的图形式查询编程语言Cypher,可以方便用户进行高效率的数据检索和分析。此版本还包括一些新特性和优化,如可以在分布式节点中进行索引读取、支持自定义Java函数等等。此外,该版本还支持多平台系统,包括Windows、macOS和Linux。与传统的关系型数据库不同,neo4j_community_3.5.30的数据在内部是以图的形式存储,而不是表的形式,这种存储方式更适合存储具有复杂关联的数据。实际应用场景包括社交网络、金融交易网络、生物学等。总的来说,neo4j_community_3.5.30是一个功能强大的图数据库管理系统,可用于高效率的数据存储、检索和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值