记录Neo4j的limit踩坑

最近完成了一个项目使用了Neo4j做节点及关系相关图谱功能,在这里记录一下里面使用limit的问题。

需求是这样的,使用neo4j做向下的层级查询,当前节点为中心节点,向下查询2级、3级、4级这样的需求。但是发现当查询4层的时候,比查询3层响应的节点及关系要少。因初次使用neo4j,不知道具体原因,在网上找了很多,没有找到具体原因,只有把cql打印出来。


MATCH p=(n:`39` {id: '测试'})-[:`30`|:`31`|:`89`|:`90`|:`91`*0..4]-(m)
WHERE  any(x in labels(m) WHERE x in ["29","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80"]) 
RETURN DISTINCT p
SKIP 0
limit 1000

自己手动一个个条件去掉执行,发现问题,出在limit 1000。这里的limit不是针对节点也不是针对关系。而是针对响应查询出来的数据集进行分页。例如分页8如下响应

MATCH p=(n:`29` {id: "测试"})-[:`30`|:`31`|:`89`|:`90`|:`91`*0..2]-(m)
WHERE  any(x in labels(m) WHERE x in ["29","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80"]) 
RETURN DISTINCT p
SKIP 0
limit 8

 

 

 执行分页条2条

 

 希望能给和我一样初次使用的人一些帮助。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值