Neo4j笔记(二)Cypher(2)列表

Cypher支持列表操作,并且和Python中的列表很相似。使用[],可以直接手动创建列表,例如:RETURN [1,2,3]。Cypher内置的range函数可以直接返回一个列表,用法和Python中的range也几乎一样。

1、range

定义:range(start, end, step)
其中step可以省略,默认值是1,需要注意:
* 返回结果包含start和end。
* start、end、step必须是Integer 类型。
* 如果start==end,则只返回一个元素的列表。
* 如果start > end,则返回一个负数。
* 如果start > end,且step < 0,则返回一个递减的列表。

2、列表索引

下标索引:RETURN [1,2,3,4][1]      //返回2
倒序索引:RETURN [1,2,3,4][-1]     //返回4
范围索引:RETURN [1,2,3,4][1..3]  //返回[2,3],注意返回的是列表,不包括4
范围索引:RETURN [1,2,3,4][-2..]   //返回[3,4]
越界索引:RETURN [1,2,3,4][2..9]  //只返回[3,4]
越界索引:RETURN [1,2,3,4][7..9]  //返回一个空列表 []
越界索引:RETURN [1,2,3,4][9]      //单个元素越界索引,返回 null

3、列表推导

列表推导是Cypher基于已有列表创建新的列表,可以和where等语句一起使用。功能类似于Python的map操作,也类似于lambda表达式,形式看起来和linux管道符号 | 一样,作用也类似,前面的输出作为后面的输入。
RETURN [x in range(1,3) | x^2]   //输出[1.0, 4.0, 9.0],注意这么写是错误的:RETURN [x^2 in range(1,3)]
RETURN [x in range(1,5) where x%2=0 | x^2]    //返回[4.0, 16.0]

猜你喜欢

转载自blog.csdn.net/haveanybody/article/details/88861708
今日推荐