图数据库(十):Neo4j中Cypher语言其他关键字

ORDER BY

不能根据关系或者节点进行排序,只能根据属性!一般order by都是放在return后面,用于对结果进行排序。

MATCH (n)
RETURN n.name, n.age
ORDER BY n.age, n.name

SKIP

SKIP用于跳过指定行数RETURN、WITH的结果。一般在Order by 的后面,如果没有order by 就放在return后面:

# 从头开始计数进行跳过
MATCH (n)
RETURN n.name
ORDER BY n.name
SKIP toInteger(3*rand())+ 1

# //跳过指定数量的结果,然后返回结果的子集,跳过前三个人,从第四个人开始返回其姓名
MATCH (n:人物)
RETURN n.姓名
SKIP 3 

LIMIT

LIMIT用于保留指定行数RETURN、WITH的结果。limit 一般是在最后,控制展示的个数:

# 从头部开始返回结果
MATCH (n)
RETURN n.name
ORDER BY n.name
LIMIT 3

FOREACH

FOREACH用于遍历并操作集合元素。

# //此查询未返回任何内容,但设置了五个节点的属性
MATCH (n:人物) 
WITH n limit 5 
WITH collect(n) as list
FOREACH (n IN list | SET n.出生年份 = "1979") 

# 可以批量的进行修改属性
match p=(begin)-[*]->(END)
where begin.name = 'A' And END.name = 'D'
foreach(n in nodes(p)| set n.marked = TRUE)

CALL

CALL 语句用于调用数据库中的内置过程(Procedure),内置过程类似于关系型数据库中的存储过程,是一组完成特定功能的方法。但这一部分一般用到的应当不多

1)调用数据库内置过程查询数据库中所有的点类型

示例如下:

# 返回类型示例
CALL db.labels()

# 也可以使用命名空间和名字调用过程,示例如下
CALL `db`.`labels`

2)调用内置过程并将结果绑定变量或过滤

示例如下:

# 调用内置过程并将结果绑定变量
CALL db.labels() YIELD label RETURN count(type) as numTypes

# 调用内置过程并过滤结果
CALL db.labels() YIELD label 
WHERE label STARTS WITH "P" 
RETURN count(label) as numTypes

UNION

UNION 用于将两个或多个查询的结果合并为一个结果集,该结果集中包含所有进行合并操作的行。

合并两个查询并保留重复项

# //返回合并的结果,包括重复项
MATCH (n:Actor)
RETURN n.name AS name
UNION ALL MATCH (n:Movie)
RETURN n.title AS name

查出来的结果是:

合并两个查询并删除重复项

# //返回合并结果,没有重复项,不包含ALL,union 将删除合并结果集中的重复项
MATCH (n:Actor)
RETURN n.name AS name
UNION
MATCH (n:Movie)
RETURN n.title AS name
​

结果是:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值