Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.4) - 集合相关操作

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
)

从集合coll中,选择最少minSelect个元素、最多maxSelect个元素,生成它们的全组合子集返回。例如:
RETURN apoc.coll.combinations([1,2,3], 2,3)
会返回:
[[1, 2], [1, 3], [2, 3], [1, 2, 3]]
 

函数

apoc.coll.contains(coll, value)

如果集合coll包含值value则返回true

函数

apoc.coll.containsAll(coll, values)

使用HashSet优化的子集包含判断函数:如果指定集合coll中包含所有values则返回true,反之false

函数

apoc.coll.containsAllSorted(
  coll, value
)

在元素已排序的列表/集合coll中判断子集value是否存在的函数:使用了Collections.binarySearch。如果包含,返回true,反之false

函数

apoc.coll.containsDuplicates(coll)

如果集合包含重复元素,则返回true

函数

apoc.coll.containsSorted(coll, value)

在元素已排序的列表/集合coll中判断元素value是否存在的函数:使用了Collections.binarySearch。如果包含,返回true,反之false

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值