neo4j学习总结--第四课 Cypher(CQL)命令二

本文详细介绍了Neo4j的Cypher命令,包括MERGE用于创建节点和关系,CREATE UNIQUE确保唯一性,SET用于添加和更新属性,以及DELETE用于删除节点和关系。还探讨了ORDER BY, LIMIT和SKIP用于结果排序和分页。" 105316362,9127000,Spring Security OAuth2.0 认证源码深度解析,"['java', 'spring', 'security']
摘要由CSDN通过智能技术生成

继续neo4j的命令课程学习:

目录

一、MERGE命令

1.1、MERGE带标签的节点

1.2、MERGE属性来自已存在节点的单个节点

1.3、MERGE在CREATE和MATCH中的使用

二、CREATE UNIQUE

三、SET命令(主要添加属性或者标签)

3.1、设置属性

3.2、删除属性

3.3、从map中添加属性

3.4、置节点的标签

四、DELETE删除节点和关系

4.1、删除单个节点

4.2、删除关系

4.3、删除路径

4.4、删除所有节点和关系

五、REMOVE删除节点或关系的现有属性

六 、ORDER BY排序

七、LIMIT限制输出的行数

八、SKIP (相当于mysql偏移量)

8.1 分页实现 使用skip 和limit



一、MERGE命令

Neo4j使用CQL MERGE命令 -

  • 创建节点,关系和属性
  • 为从数据库检索数据

MERGE命令是CREATE命令和MATCH命令的组合。

MERGE = CREATE + MATCH

Neo4j CQL MERGE命令在图中搜索给定模式,如果存在,则返回结果

如果它不存在于图中,则它创建新的节点/关系并返回结果

1.1、MERGE带标签的节点

下面的例子合并给定标签的节点。

MERGE (robert:Critic)

RETURN robert, labels(robert)

因为没有包含Ctritic标签的节点,一个新节点在数据库中创建了

1.2、MERGE属性来自已存在节点的单个节点

当每个绑定节点的属性’p’来自一个节点集时,如果’p’存在重复,创建的时候只会创建一次。

.//先创建一个节点

MERGE (riky:Person { name: 'riky', bornIn:'newyork'})

RETURN riky.name, riky.bornIn

//先查询出来节点,根据节点的属性MERGE 另外一个节点数据

MATCH (person:Person{ bornIn:'newyork'})

MERGE (city:City { name: person.bornIn })

RETURN person.name, person.bornIn, city

1.3、MERGE在CREATE和MATCH中的使用

MERGECREATE搭配

检查节点是否存在,如果不存在则创建它并设置属性。

MERGE (keanu:Person { name: 'Keanu Reeves' })

ON CREATE SET keanu.created = timestamp()

RETURN keanu.name, keanu.created

本查询创建了keanu节点,并设置created属性为创建的时间戳。

MERGEMATCH搭配

匹配节点,并在找到的节点上设置属性。

MERGE (person:Person { name: 'Keanu Reeves2' })

ON MATCH SET person.found = TRUE

RETURN person.name, person.found

本查询找到所有的Person节点,并设置found属性为true,然后返回它们。

MERGECREATEMATCH同时使用

检查节点是否存在,如果不存在则创建它并设置属性。

MERGE (keanu:Person { name: 'Keanu Reeves' })

ON CREATE SET keanu.created = timestamp()

ON MATCH SET keanu.lastSeen = timestamp()

RETURN keanu.name, keanu.created, keanu.lastSeen

利用MergeMATCH设置多属性

如果需要设置多个属性,将它们简单地以逗号分开即可。

MERGE (person:Person)

ON MATCH SET person.found = TRUE , person.lastAccessed = timestamp()

RETURN person.name, person.found, person.lastAccessed

MERGE关系

MERGE可用于匹配或者创建关系。

MATCH (charlie:Person { name: 'Charlie Sheen' }),(wallStreet:Movie { title: 'The Matrix' })

MERGE (charlie)-[r:ACTED_IN]->(wallStreet)

RETURN charlie.name, type(r), wallStreet.title

因为"Charlie Sheen"已经在"The Matrix"参演了,所以找到已存的关系并返回。注意:使用MERGE去匹配或者创建关系时,必须至少指定一个绑定的节点。

合并多个关系

当MERGE应用于整个模式时,要么全部匹配上,要么全部新创建。

MATCH (oliver:Person { name: 'Lilly Wachowski'

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值