1、概述
在Cypher查询语言中,集合的使用非常普遍。集合的元素可以是简单类型的值、节点、关系、路径,甚至混合类型。下面的例子是产生集合的一些常用方法:
// 返回一个包含从1到10 的整数集合
RETURN range(1,10) AS collection;
// 返回节点的集合
MATCH (n:Node)
RETURN collect(n) AS nodeColl
// 提取路径中的节点和关系集合
MATCH path = (from:Node) -[:REL]-> (to:Node)
RETURN nodes(path) AS nodeColl, relationships(path) AS relColl
2、函数和过程一览
APOC中集合相关过程和函数提供操作集合的丰富功能。列举如下:
类型 |
名称 |
说明 |
函数 |
apoc.coll.avg([0.5,1,2.3]) |
计算集合中的所有值的平均值。 |
函数 |
apoc.coll.combinations( |
从集合coll中,选择最少minSelect个元素、最多maxSelect个元素,生成它们的全组合子集返回。例如: |
函数 |
apoc.coll.contains(coll, value) |
如果集合coll包含值value则返回true。 |
函数 |
apoc.coll.containsAll(coll, values) |
使用HashSet优化的子集包含判断函数:如果指定集合coll中包含所有values则返回true,反之false。 |
函数 |
apoc.coll.containsAllSorted( |
在元素已排序的列表/集合coll中判断子集value是否存在的函数:使用了Collections.binarySearch。如果包含,返回true,反之false。 |
函数 |
apoc.coll.containsDuplicates(coll) |
如果集合包含重复元素,则返回true。 |
函数 |
apoc.coll.containsSorted(coll, value) |
在元素已排序的列表/集合coll中判断元素value是否存在的函数:使用了Collections.binarySearch。如果包含,返回true,反之false |