和
Oracle中with的用法相似
,把with后面结果集当成一个查询结果、在这个结果基础上再做where条件的筛选
比如下面这个语句:查询所有电影集、每个电影至少有8个以上的演员参演。
with o,count(r) as count_r,以这个为结果集、然后在此基础上筛选出count_r大于8的
MATCH (n:Person)-[r:ACTED_IN]->(o:Movie) with o,count(r) as count_r where count_r > 8 RETURN o
查询结果如下
查询所有电影集、每个电影至少有8个以上的演员参演。
把
with
后面结果集当成一个查询结果、在这个结果基础上再做where条件的筛选
语句:MATCH (n:Person)-[r:ACTED_IN]->(o:Movie)
with
o,count® as count_r where count_r > 8 RETURN o
https://blog.csdn....
语句用于控制查询流程,将之前的查询结果传递给后续的操作。首先,它匹配参演电影的人节点,并传递人节点和电影数量给第一个。语句将匹配的结果传递给后续的操作,这里是返回每个人节点的姓名属性。,然后根据条件过滤,最终返回满足条件的人节点的姓名。传递给后续的操作,最终返回人节点的姓名和电影数量。语句将一个字符串列表传递给后续的操作,然后使用。展开列表,逐个创建具有姓名属性的人节点。用于将之前的查询结果传递给后续的查询操作。这个示例匹配参演电影的人节点,然后使用。将每个人节点和他们参演的电影数量。
WITH
用于向后面的语句传递指定结果,并可以改变结果集
中
实体的形式和数量。注意,
WITH
会影响查询结果集里的变量,
WITH
语句外的变量不会传递到后续查询
中
。
对结果进行筛选
# 聚合函数进行筛选, 这句话表达的是David连接过去的节点,它向外连接关系大于1的那个节点
match(David{name: 'David'}) --(otherPerson)-->()
with
otherPerson, count(*) as cnt
where cnt > 1
return other
create (n12:NewPaper{newPaperId:484029658,newPaperName:"上册",active:1,subjectId:5,versionId:560,gradeId:4})
create (n13:NewPaper{newPaperId:484029749,
对于MATCH和OPTTNAL MATCH, WHERE为模式增加约束, 它不能看作是匹配完成后的结果过滤。这个查询会返回 Tom Hanks 在 2000 年之后参演过的电影。这个查询会返回在 2000 年到 2010 年之间发布的电影的标题。这个查询会返回姓名
中
包含 "smith"(不区分大小写)的所有人。这个查询会匹配年龄大于 25 岁的所有人,并返回他们的姓名。这个查询会返回姓名
中
包含 "John" 的所有人。这个查询会返回那些有年龄属性的人的姓名。这个查询会返回年龄属性为空的人的姓名。
应用场景:需要跨进程或远程传输
VO:value object 值对象 / view object 表现层对象
1 .主要对应页面显示(web页面/swt、swing界面)的数据对象。
2 .可以和表对应,也可以不,这根据业务的需要。
BO:business
WITH
语句将分段的查询部分连接在一起,查询结果从一部分以管道形式传递给另外一部分作为开始点。
使用
WITH
可以在将结果传递到后续查询之前对结果进行操作。操作可以是改变结果的形式或者数量。
WITH
的一个常见
用法
就是限制传递给其他MATCH语句的结果数。通过结合ORDER BY和LIMIT,可获取排在前面的X个结果。
1.15.1 过滤聚合函数结果
聚合的结...